Re: [SQL ] 請問要如何轉換複選的欄位呢?

看板Database作者 (Alien)時間18年前 (2008/01/03 01:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
※ 引述《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 : 呈現這樣的狀態。因為要統計各選項的人數。 : 請問要怎麼寫這樣的語法呢?謝謝 選擇的英文是 Choice 不是 Choise 通常這種情況,會用: SID CHOICE 1 A 1 B 1 C 2 B 2 C 3 A 3 C 這種做法的... 你的第二種做法,要是以後要加新選項 又要改 schema 了。 而你的問題,ANSI SQL 該沒有直接的解法。可以利用各 DBMS 的 string finding function. 比如 Oracle 的話, insert into T2(S_SID, C_A, C_B, C_C) select sid, decode(instr(choice, 'A'), 0, 0, 1), decode(instr(choice, 'B'), 0, 0, 1), decode(instr(choice, 'C'), 0, 0, 1) from T1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.103.235.35
文章代碼(AID): #17UyN0Jb (Database)
討論串 (同標題文章)
文章代碼(AID): #17UyN0Jb (Database)