線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1262
推到 Plurk!
推到 Facebook!

UPDATE 補0問題

尚未結案
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-01 14:37:44 IP:203.69.xxx.xxx 未訂閱
UPDATE 補0問題 A TABEL有 欄位aa的內容CHAR(10) 內容有1100100 1101 11011 1200101 1301 12011 1:若要7碼的自動在第八碼自動補0如何下 UPDATE A SET aa=....如何下 2:若要八碼的自動在第八碼自動去0如何下
jerryhung
初階會員


發表:6
回覆:46
積分:30
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-01 15:29:42 IP:210.243.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-01 18:48:34 IP:218.160.xxx.xxx 未訂閱
Sorry 不曉得何種資料庫 以下試試
------


我不是高手, 高手是正在銀幕前微笑的人.
silence
一般會員


發表:9
回覆:17
積分:10
註冊:2003-06-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-01 19:05:15 IP:61.221.xxx.xxx 未訂閱
不行呦 他先天已經是 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-02 00:20:44 IP:61.62.xxx.xxx 未訂閱
記得請先說明你的資料庫種類 依照你之前的問題, 應該是 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 函數!!
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-11 08:43:52 IP:203.69.xxx.xxx 未訂閱
引言: 記得請先說明你的資料庫種類 依照你之前的問題, 應該是 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
系統時間:2024-06-08 9:01:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!