我正在使用SQL Server 2008.SQL Server填充0與RIGHT不工作
我有一個varchar(30)列,其中包含檢查號碼。如果使用信用卡付款,checknbr將是一個零長度的字符串。我需要使用前導零來填充這些數據,這樣整個輸出就是十位數字。如果沒有支票號碼,它應該是十個零。
這裏是我想看到的數據:
0000000000
0000000000
0000000114
0000000105
0000000007
這是我一直在使用和我被困在查詢:
SELECT RIGHT((CASE
WHEN LEN(checknbr) = 0 THEN '0000000000'
ELSE '0000000000'+checknbr
END),10) as checknbr
FROM payhistory
WHERE number = 12345678
而這就是我得到:
0000000000
0000000000
114
105
7
嘗試另一種方式:
SELECT RIGHT('0000000000'+checknbr,10)
FROM payhistory
WHERE number = 3861821
我得到了同樣的結果。奇怪的是,我有一個varchar(10)列,其中
RIGHT('0000'+EDC.DatabaseNumber,4)
產生的結果正是我之後的結果。我在這裏錯過了什麼?有關RIGHT功能的怪癖?
在此先感謝
你如何觀測結果? –