sql 根据一个字段的值判断显示其他字段的值 5

比如一个多选试题的表字段题目、选项A、选项B、选项C、选项D、正确答案对应字段名如下:topicABCDans测试题目选项1选项2选项3选项4A、C怎样根据ans正确答案... 比如一个多选试题的表字段题目、选项A、选项B、选项C、选项D、正确答案对应字段名如下:
topic A B C D ans
测试题目 选项1 选项2 选项3 选项4 A、C
怎样根据ans正确答案字段里的值判断显示出字段A、B、C、D中的内容
比如ans中的值为A、C,则显示出选项1和选项3

请问SQL语句怎么写?多谢
sql server数据库
展开
 我来答
韵蓝玉梦
推荐于2017-12-16 · 超过14用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:34万
展开全部
select
case when charindex(a,ans) >0 then a

ELSE '' END as a,

case
when charindex(b,ans) >0 then b

ELSE '' END as b,
case
when charindex(c,ans) >0 then c

ELSE '' END as c,
case
when charindex(d,ans) >0 then d
ELSE '' END as d,
ans

from baby
你这个设计的不太好,应该用两个表,一个表只存有几个选项,另一个表存答案
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯内科Snake
2014-03-18 · TA获得超过523个赞
知道小有建树答主
回答量:707
采纳率:50%
帮助的人:244万
展开全部

使用分隔字符串:


create   function   f_splitstrX(@SourceSql   varchar(8000),@StrSeprate   varchar(100))   
  returns   @temp   table(F1   varchar(100))   
  as     
  begin   
  declare   @ch   as   varchar(100)   
  set   @SourceSql=@SourceSql+@StrSeprate     
  while(@SourceSql<>'')   
                  begin   
                  set   @ch=left(@SourceSql,charindex(@StrSeprate,@SourceSql,1)-1)   
  insert   @temp   values(@ch)   
  set   @SourceSql=stuff(@SourceSql,1,charindex(@StrSeprate,@SourceSql,1),'')   
                  end   
  return   
  end   
  
  --使用时 
  declare @ans varchar(200)
  select @ans=ans from 表 where 题目ID=5
  declare @columns varchar(1000)
  set @columns =''
  select @columns=@columns+','+F1 from dbo.f_splitstrX('、',@ans) 
  set @columns=stuff(@columns,1,1,'')
  exec ('select ' +@
 + ' from 表 where 题目ID=5')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wucui2007ah
2014-03-18 · TA获得超过120个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:126万
展开全部
什么数据库?下次提问一定要写清楚是什么环境哦,万一别人费了半天劲结果还是数据库不一样多不好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式