UPDATE 補0問題 |
尚未結案
|
vivi666666
初階會員 ![]() ![]() 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
|
jerryhung
初階會員 ![]() ![]() 發表:6 回覆:46 積分:30 註冊:2002-12-11 發送簡訊給我 |
CREATE TABLE #t1
(
c1 varchar(10),
c2 char(10)
) INSERT INTO #t1 VALUES ('1100100', '1100100')
INSERT INTO #t1 VALUES ('1101', '1101')
INSERT INTO #t1 VALUES ('11011', '11011')
INSERT INTO #t1 VALUES ('1200101', '1200101')
INSERT INTO #t1 VALUES ('1301', '1301')
INSERT INTO #t1 VALUES ('12011', '12011') SELECT REPLICATE('0', 10 - DATALENGTH(c1)) c1 AS [Varchar Column],
REPLICATE('0', 10 - DATALENGTH(c2)) c2 AS [Char Column]
FROM #t1 UPDATE #t1
SET c2 = REPLICATE('0', 10 - DATALENGTH(c1)) c1 SELECT * FROM #t1 (nolock) drop table #t1 自己變通一下即可囉~
|
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
silence
一般會員 ![]() ![]() 發表:9 回覆:17 積分:10 註冊:2003-06-04 發送簡訊給我 |
不行呦
他先天已經是 char(10) 了
再 c1 replicate('0', 10 - datalength(c1))
其中 datalength(c1) 還是 10 啊!
0 根本補不進去 用 CAST 1.若是要變更現有的 TABLE 內容, 前提是你的 欄位資料 都是數字才能作以下
若有文字... 那就暫時無解
UPDATE myTABLE
SET C1 = CAST(CAST(C1 AS int) AS varchar(10)) REPLICATE('0', 10 - DATALENGTH(CAST(CAST(C1 AS int) AS varchar(10)))) 2. 若是新的 INSERT 的 RECORD 要達到
==> 從程式寫掉吧
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
vivi666666
初階會員 ![]() ![]() 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言: 記得請先說明你的資料庫種類 依照你之前的問題, 應該是 access 吧, 可以這樣下: 1. update a set aa = rtrim(aa) '0' where len(rtrim(aa))=7 2. update a set aa = left(aa,7) where len(rtrim(aa))=8 注意 char(10) 的格式比較不好操作, 要配合 rtrim 函數!!因我是在SYSBASE 試出來是用 UPDATE AC_ACNTID SET ACNTID=RTRIM(ACNTID)||'0' WHERE DATALENGTH(RTRIM(ACNTID))=7 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |