0

我正在使用 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 

谢谢。

4

2 回答 2

4

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

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

它总是 6 个字符宽。


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

于 2013-01-21T08:28:06.027 回答
0

这是另一种选择——您需要使用单型(固定宽度)字体来查看结果,但间距应该是正确的(相应调整——目前两者都设置为 7 个字符):

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

还有SQL 小提琴

祝你好运。

于 2013-01-21T08:35:00.797 回答