Database 板


LINE

※ 引述《adrianshum (Alien)》之铭言: : ※ 引述《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 不好意思,我刚刚才发现…我把两位版友的帐号写反了 真是非常抱歉orz 订正一下 其实sandwind已经写出来了,只是可以直接用case叙述写成一个查询: select S_ID ,case when charindex('A', CHOICE) > 0 then 1 else null end as CHOICE_A ,case when charindex('B', CHOICE) > 0 then 1 else null end as CHOICE_B ,case when charindex('C', CHOICE) > 0 then 1 else null end as CHOICE_C from A 注意我把CHOISE改成CHOICE null也可以改成0,看你的表格资料库要求 不过我也觉得adrianshum版友的表格设计比较好扩充 可以做一个暂存表格去连结原来的表来输出adrianshum的表: select S_ID, temp.CHOICE from A inner join (select 'A' as CHOICE union select 'B' as CHOICE union select 'C' as CHOICE ) temp on charindex(temp.CHOICE, #temp.CHOICE) > 0 不过一般这情况,资料库会有列出全部选择ABC的表 这样的话就不需要temp表,直接join ABC选择表就可以了 除了charindex函数,也可以用like来判断ABC是不是在字串中 而且在这里like的意思比较像你想要的功能,毕竟charindex主要是用来查位置的 ※ 编辑: Antzzz 来自: 211.20.100.62 (01/03 13:05) ※ 编辑: Antzzz 来自: 211.20.100.62 (01/07 18:41)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP