0

私はMSSQLを使用していますが、クエリは次のようになります。

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桁の2つの形式があり、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文字になります。


もちろん、現在のクエリでは、各列はとにかく別々に表示されるはずですが、何かがすべての列を1つのテキストに結合しているので、通常、文字列の書式設定をそのコンポーネントにプッシュすることをお勧めします。 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 に答える