全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1255
推到 Plurk!
推到 Facebook!

請教如何在加入的欄位中判斷有多少char或int位數後補空白加入?

尚未結案
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-27 22:37:38 IP:202.145.xxx.xxx 未訂閱
資料庫sql 2000 create table tran ( data varchar(100) ); create table test ( aaa varchar(20),--用20-欄位字串 bbb int,--用4-位數 ccc varchar(20)--用20-欄位字串 ); insert into test(aaa,bbb,ccc) values ('01234',22,'56789') insert into test(aaa,bbb,ccc) values ('666',234,'999') 請教在insert into 時能先否判定test中各欄位有多少字串或幾位數 如aaa 01234是5位其餘用20-5=15(則後方補15位的空白),bbb 是22的話為2位數 4-2=2(則後方補2位空白),ccc 為56789用20-5為5位, 使data值是如下的結果,#表示空白 01234###############22##56789 就像下面下的語法(下面這個語法還少條件判定式如aaa 01234是5位其餘用20-5=15(則後方補15位的空白),bbb 是22的話為2位數 4-2=2(則後方補2位空白),ccc 為56789用20-5為5位) insert into tran(data) select aaa,bbb,ccc from test where aaa='012345' 堅持從洗馬桶做起 Eric
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-28 02:19:40 IP:61.71.xxx.xxx 未訂閱
引言: 資料庫sql 2000 create table tran ( data varchar(100) ); create table test ( aaa varchar(20),--用20-欄位字串 bbb int,--用4-位數 ccc varchar(20)--用20-欄位字串 ); insert into test(aaa,bbb,ccc) values ('01234',22,'56789') insert into test(aaa,bbb,ccc) values ('666',234,'999') 請教在insert into 時能先否判定test中各欄位有多少字串或幾位數 如aaa 01234是5位其餘用20-5=15(則後方補15位的空白),bbb 是22的話為2位數 4-2=2(則後方補2位空白),ccc 為56789用20-5為5位, 使data值是如下的結果,#表示空白 01234###############22##56789 就像下面下的語法(下面這個語法還少條件判定式如aaa 01234是5位其餘用20-5=15(則後方補15位的空白),bbb 是22的話為2位數 4-2=2(則後方補2位空白),ccc 為56789用20-5為5位) insert into tran(data) select aaa,bbb,ccc from test where aaa='012345' 堅持從洗馬桶做起 Eric
你這個想法我看不懂唉! 如果你想要欄位後面直接填入空白, 定義char(20)就可以了, 使用varchar()是不定長度的儲存 至於 int是數值型態, 我想不通如何可以像string一樣另其儲存可以有空白? 不如也改用 char(), 將數值資料轉存成 string 就可以了! 如果你是要輸出成特定格式那可以用 format(' s',[aaa]) 或 format('%4s',[inttostr(bbb)]) 以上提供參考~~~
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-28 15:26:54 IP:218.160.xxx.xxx 未訂閱
Hi huangeider 您好: 參考一下這個

select SubString(aaa REPLICATE('0', COL_LENGTH ('test', 'aaa')), 1, COL_LENGTH ('test', aaa')),
from test where aaa='012345'
這一段會選出aaa欄位並將'0'填滿在右邊, 但若資料裡有中文會有誤差, 另外你的欄位bbb是數字, 他雖然表示長度是4但並不是顯示出來只要四位數, 所以這方面我不曉得你的需求是什麼 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
系統時間:2024-09-09 18:04:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!