SQL格式为2格式的1字段

时间:2013-01-21 08:19:16

标签: sql sql-server sql-server-2008 tsql sql-server-2005

我正在使用MS SQL,我的查询是这样的:

select
A.CUS_EuroCustId No_Id, 
' '  BLANK1,
A.IVC_Number INV_Nr , 
'     ' BLANK2, 
'PINV' PINV ,  
' ' BLANK3,

from 
INVOICE as A

然后输出如下:

  01102450 146918     PINV 
  01102847 146381     PINV 
  01105915 16151     PINV 
  01102646 146850     PINV
  01105915 16150     PINV 

IVC_Number有两种格式,6位数和5位数,IVC_Number和'PINV'之间的空格很重要。现在我如何在我的SQL查询中创建它,输出应该是这样的:

  01102450 146918     PINV 
  01102847 146381     PINV 
  01105915 16151      PINV 
  01102646 146850     PINV
  01105915 16150      PINV 

感谢。

2 个答案:

答案 0 :(得分:4)

使用LEFT并自行添加一些填充:

LEFT(A.IVC_Number+'    ',6) INV_Nr , 

它总是6个字符宽。


虽然当然,在当前查询中,每列都应该单独显示 - 有些东西将所有列组合成一段文本,我通常建议将字符串格式化为任何一个组件是,而不是在SQL中工作。

答案 1 :(得分:0)

这是一个替代方案 - 您需要使用单型(固定宽度)字体来查看结果,但间距应该是正确的(相应地调整 - 两者当前都设置为7个字符):< / p>

SELECT 
   RIGHT('       ' + CAST(ID AS VARCHAR(7)), 7) + 
   RIGHT('       ' + CAST(INV_Nr  AS VARCHAR(7)), 7) +
   PINV
FROM Test

SQL Fiddle

祝你好运。