2016-08-10 4 views
1

出力データを表示する必要があります。各列の固定長の空白を追加/置換する必要があります。各列の長さが異なる可能性があります。SQLストアドプロシージャを使用していくつかの文字(varchar)の後に後続スペースを追加する方法は?

select top (20)   
     patname + REPLICATE(' ', 30 - DATALENGTH(patname)) AS NAME, 
     RefNo + REPLICATE(' ', 15 - DATALENGTH(RefNo)) AS REFNO, 
     ClaimAmt AS AMOUNT  
    from AR_Ebilling 

フィールド長を設定する必要があります

NAME = 30 varchar型、REFNO = 15 varchar型、金額= 10金/進、

予想される出力結果:

NAME       REFNO   AMOUNT 
Ahmad Kasan     1235   00000000565.93    
Amirah       AY582M8D  -00023441200.23     
Paul       0ST127   00000004234.45  

TQ

答えて

1

答えはありません! 1つはデータベースに冗長データを格納しません。これらの空白はすべて実際には格納する必要はありません。なぜなら、お気に入りのプログラミング言語の文字列を埋め込むことや、mysql自身を使って文字列をパディングすることは簡単なことではありません。このエンドmysqlの方にあります

RPAD

はlen文字の長さ に文字列終わりにpadstrを埋められた文字列strを、返します。 strがlenよりも長い場合、戻り値 はlen文字に短縮されます。

そして

LPAD

左詰めlen文字の長さ に文字列padstrで文字列strを、返します。 strがlenよりも長い場合、戻り値は がlen文字に短縮されます。

はまた、不テーブルに埋められた文字列を格納するとVARCHARを使用することが無駄になることに注意してください。

+0

実際に私はデータを格納していないデータを表示したい –

+1

私たちは同じ事を考えていることを知っておきましょう。 LPADとRPADはあなたが欲しいものです – e4c5

+0

それは作品ですね! :) –

関連する問題