2017-04-19 10 views
0

私の質問はかなり簡単です。私は929.77として格納されているSQLの値を照会しているが、私は00000092977として表示されるように値をプルしたいので、私は常に11桁にもそれがすべてゼロになるようにする列が必要です。今、私は正反対の92977000000を引っ張っています。左揃え9.2 SQL select SQL Server 2012

ありがとうございます。

LEFT(REPLACE(Cast(ISNULL(c2.preinjwage,0) as varchar), '.', '') + '0000000000',11) as 'wage' 
+0

まあ... 0が間違った側にある場合は、反対側に切り替えて、代わりに右を使用してみましたか? –

答えて

2

反対:

RIGHT('0000000000'+REPLACE(Cast(ISNULL(c2.preinjwage,0) as varchar(12)), '.', ''),11) as 'wage' 

クイックテスト:

declare @in decimal(9,2)='929.77' 

select right('0000000000'+replace(Cast(isnull(@in,0) as varchar(12)), '.', ''),11) as 'wage' 

rextesterデモ:http://rextester.com/GTGSJ72810

戻り値:

+-------------+ 
| wage  | 
+-------------+ 
| 00000092977 | 
+-------------+ 
+0

パーフェクト!ありがとうございました! – Dizzle

+0

@Dizzle助けて嬉しいです! – SqlZim

1

あなたは常に小数点以下2桁を持っていると仮定すると、(10進の桁数は、1.11と111を区別しないであろうと提案フォーマットは意味をなさない変えることができた場合)

あなたも使用できます

SELECT FORMAT(CAST(ISNULL(c2.preinjwage,0) * 100 AS INT), 'd11')