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

SQL Problem

尚未結案
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-27 18:47:33 IP:203.185.xxx.xxx 未訂閱
SQL 有沒有方法可以做到這樣 Table A: Field 1 Field 2 ------------------------ A 'ABC' A 'DEF' A = 'ABC' 'DEF' = 'ABCDEF'
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-27 22:01:37 IP:61.62.xxx.xxx 未訂閱
請問 field1 相同值的記錄筆數是固定的嗎? 要結合的順序為何呢? 也有可能是 DEFABC 嗎?
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-27 22:54:49 IP:218.103.xxx.xxx 未訂閱
Field 1 你可以當是index一個或普通一個field,如果field 2是一個數字,那當然可以用sum group by,但如果是一個char,那怎麼辦呢?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-28 00:42:15 IP:61.62.xxx.xxx 未訂閱
沒有怎麼辦啊, 就看你的需求為何? 基本上 aggregation function 只能針對數值型態的資料, 無法處理 char 或是 varchar 的資料, 若你的需求是要將字串結合, 可以利用 cursor 配合處理即可, 只是要注意你的需求的順序為何, 這也是我前一篇問你順序的原因!
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-28 09:14:15 IP:203.185.xxx.xxx 未訂閱
當然要順序..那麼如何用cursor去做呢? 請指教一下
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-28 14:35:29 IP:203.95.xxx.xxx 未訂閱
請說明你的資料庫種類, 若是 mssql 的話, 可以這麼做,    
declare @sRet varchar(8000)
declare @sdata varchar(200)
declare c cursor for 
  select f2 from t1 where f1 = 'A'
open c
select @sRet = ''
FETCH NEXT FROM c INTO @sdata    WHILE @@FETCH_STATUS = 0
BEGIN
  select @sRet = @sRet   @sdata
  FETCH NEXT FROM c INTO @sdata
END    print @sRet    close c
deallocate c
若是要將各分組取出的話, 可以再搭配 temp table , 先寫入暫存再一次取回即可!
系統時間:2024-05-05 22:40:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!