各位先進
想請問一個SQL問題
小弟先說明一下狀況
小弟有資料當初廠商設計時年份欄位只留一位, 後面用月及流水號表示
而今年已到09年..即資料內單號代碼開頭為9
例
901003
年 月 流水號
9 01 003
小弟看過資料表設計是可以容許有8個數字
先姑且不管前端程式能不能跑
照資料庫應可以直接前面補0
所以小弟想請問SQL語法高手們
如何下SQL指令讓它從 901003 變成 0901003
意即整串單號欄位前面多加一碼0
該資料庫名稱為 SALE 該欄位代碼為 ODR_NM
還有一個是前面還多一個英文字的
F90010
一樣問題
如何將 F90010 在F後補0 變成 F090010
該欄位代碼為 OUT_NM
有勞高手們
在此先謝過
SELECT REPLICATE(’0′, 10 - DATALENGTH(col1)) + col1 AS NAME
FROM PADTEST
GO
NAME
———
00DECIPHER
000000INFO
0000000SYS
For RPAD, we have to use following syntax.
SELECT col1 + REPLICATE(’0′, 10 - DATALENGTH(col1)) AS NAME
FROM PADTEST
GO
NAME
———-
DECIPHER00
INFO000000
SYS0000000
這個是MS SQL Server用的方式, 不知道你用的是哪家資料庫
7是你要的總長度, 你原本的資料是901003,長度是6, 總長是7的話就是1個0
>>>然後第2條指令的 6
>>>是因為前面多了LEFT(OUT_NM,1) 數字部分只有6碼
>>>所以是宣告敘述之後需要6個空間填碼囉
你原本的值是F90010,扣除第1碼F, 剩5碼,你要加1個0補成6碼所以給6
>>>不過 SUBSTRING(OUT_NM,2,5) 這段就不懂了..
因為前面的部分做完只會有"F0", 必須再加上你原本的資料F90010,第2個算起的5個

























































































