看板 Database 關於我們 聯絡資訊
※ 引述《sanwind (疾風迅雷)》之銘言: : 使用DB:MS SQL 2000 : 因為在做有關問卷的JOB,當中有遇到複選的問題 : 比如: : 現有個TABLE A : 內容為 : S_ID CHOISE : 1 A,B,C : 2 B,C : 3 A,C : 現想要使用SQL語法將之寫入另一個TABLE B : 變成: : S_ID CHOISE_A CHOISE_B CHOISE_C : 1 1 1 1 : 2 1 1 : 3 1 1 : 呈現這樣的狀態。因為要統計各選項的人數。 : 請問要怎麼寫這樣的語法呢?謝謝 啊...我似乎試出方法來了...不過是在同一個TABLE中 就是在TABLE A中新增欄位CHOISE_A,CHOISE_B,CHOISE_C 使之成為: S_ID CHOISE CHOISE_A CHOISE_B CHOISE_C 1 A,B,C 2 B,C 3 A,C 然後執行 UPDATE TABLE A SET CHOISE_A = '1' WHERE CHARINDEX('A',CHOISE) > 0; --CHARINDEX是判斷CHOISE欄位中,A的位置是多少 --因此只要是有A在,那就一定大於0囉 UPDATE TABLE A SET CHOISE_B = '1' WHERE CHARINDEX('B',CHOISE) > 0; UPDATE TABLE A SET CHOISE_C = '1' WHERE CHARINDEX('C',CHOISE) > 0 如此一來,就會呈現下面這樣的狀態: S_ID CHOISE CHOISE_A CHOISE_B CHOISE_C 1 A,B,C 1 1 1 2 B,C 1 1 3 A,C 1 1 這樣就可以簡單的計算出有選A,選B,選C的各有幾人了 唯一的缺點就是:UPDATE 滿吃資源的,如果資料量一大就會慢到不行了 如果版友有更好的作法,也請指導一下囉~ 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.1.29