求一个select语句,帮帮忙啊@@

渃水 2013-02-22 01:59:36
字段有:
题目 varchar
A varchar
B varchar
C varchar
D varchar
答案 char(1)

keyword为搜索关键字
写一个select语句,读出题目中含有关键字的题目和正确选项的内容。

sql初学,这个是不是还要if判断的啊?该怎么写,感激不尽!!!
...全文
386 16 点赞 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
渃水 2013-02-22
引用 15 楼 DBA_Huangzj 的回复:
SQL code?123select 题目,CASE 正确答案 WHEN 'A' THEN A选项 WHEN 'B' THEN B选项 WHEN 'C' THEN C选项 WHEN 'D' THEN D选项 ELSE '无答案' END '正确答案'from 表 where charindex('算法',题目,1)>0
谢谢你!! 也谢谢回答的大家!
  • 打赏
  • 举报
回复
發糞塗牆 2013-02-22
select 题目,CASE 正确答案 WHEN  'A' THEN A选项 WHEN 'B' THEN  B选项 WHEN 'C' THEN C选项 WHEN 'D' THEN D选项 ELSE '无答案' END '正确答案'
from 表 
where charindex('算法',题目,1)>0
  • 打赏
  • 举报
回复
渃水 2013-02-22
引用 13 楼 DBA_Huangzj 的回复:
SQL code?123select 题目,正确答案 from 表where charindex('算法',题目,1)>0
可能是我没有表达清楚,题目和各个选项中存储的是字符串,然后答案中只存一个字符,就是ABCD中的任意一个,在搜索到题目和答案之后,比如说搜索到一道题,答案是A,然后返回选项A中对应字符串和题目的内容
  • 打赏
  • 举报
回复
發糞塗牆 2013-02-22
select 题目,正确答案 
from 表
where charindex('算法',题目,1)>0
  • 打赏
  • 举报
回复
渃水 2013-02-22
我想要查找出的结果 只要题目和正确答案的内容
  • 打赏
  • 举报
回复
渃水 2013-02-22
算法的计算量的大小称为计算的( )这个就是题目 表里总共六列 题目,A选项,B选项,C选项,D选项,正确答案
  • 打赏
  • 举报
回复
發糞塗牆 2013-02-22
那么你那个“题目:算法的计算量的大小称为计算的( ) A:效率 B:复杂性 C:现实性 D;难度 答案:B ”中,最起码要分开多列: 题目一列,算法的计算量的大小称为计算的( )放一列,答案最好都分开,答案一列,不然你修改的时候会半死不活的。
  • 打赏
  • 举报
回复
渃水 2013-02-22
引用 8 楼 DBA_Huangzj 的回复:
你的数据格式是如何?题目:算法的计算量的大小称为计算的( ) A:效率 B:复杂性 C:现实性 D;难度 答案:B 这个是在一列还是在几列里面?其实我认为设计的时候答案那几项应该放到单独的列,否则到时候检查考生答案会很复杂。如果可以改设计就改为妙。不行的话,那么“搜索“算法”,出来着两条记录”这部分,可以用 where charindex('算法',列名 ,1)>0把包……
是分开来的,每个答案一列 题号自增,isnot控制是否发布这道题,subject是隶属的科目,现在想做个查询题目再修改的界面
  • 打赏
  • 举报
回复
發糞塗牆 2013-02-22
你的数据格式是如何?题目:算法的计算量的大小称为计算的( ) A:效率 B:复杂性 C:现实性 D;难度 答案:B 这个是在一列还是在几列里面?其实我认为设计的时候答案那几项应该放到单独的列,否则到时候检查考生答案会很复杂。如果可以改设计就改为妙。不行的话,那么“搜索“算法”,出来着两条记录”这部分,可以用 where charindex('算法',列名 ,1)>0把包含算法两个字的行找出来。然后再select那里做手脚,给个简单例子:
DECLARE @a NVARCHAR(max)='题目:算法的计算量的大小称为计算的() A:效率 B:复杂性 C:现实性 D;难度 答案:B'
SELECT SUBSTRING(@a,PATINDEX('%:%',@a)+1,PATINDEX('%)%',@a)-2)as [题目],SUBSTRING(@a,PATINDEX('%答案%',@a),LEN(@a)-PATINDEX('%答案%',@a)+1 )as [正确答案]


/*
题目                                                                                                                                                                                                                                                               正确答案
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
算法的计算量的大小称为计算的()                                                                                                                                                                                                                                                 答案:B

(1 行受影响)
*/
  • 打赏
  • 举报
回复
渃水 2013-02-22
还有:是编写一个考试系统的c#程序,所以需要可以执行sql语句执行,查找并读出来,不是只是想搜索到结果的
  • 打赏
  • 举报
回复
渃水 2013-02-22
引用 2 楼 DBA_Huangzj 的回复:
在where条件里面筛选就可以了,没必要用if,你把源数据和期待结果贴出来,不用贴太多
题目:算法的计算量的大小称为计算的( ) A:效率 B:复杂性 C:现实性 D;难度 答案:B 题目:算法的时间复杂度取决于() A:问题的规模 B:待处理数据的初态 C:A 和 B D:都不是 答案:C 比如这两条记录,搜索“算法”,出来着两条记录,显示题目和正确答案,不是答案选项,而是答案内容
  • 打赏
  • 举报
回复
-Tracy-McGrady- 2013-02-22
你在查询窗口里面输入charIndex,选中按F1看看就知道了,跟like %差不多
  • 打赏
  • 举报
回复
渃水 2013-02-22
引用 1 楼 yangsh0722 的回复:
charindex
什么意思?sql都不太懂,才看来着
  • 打赏
  • 举报
回复
szm341 2013-02-22
不太好合成一句啊 declare @answer char(1) select @answer=答案 from tb where 题目 like '%关键字%' exec('select 题目,答案,'+@answer+' from tb where 题目 like ''%关键字%''' )
  • 打赏
  • 举报
回复
發糞塗牆 2013-02-22
在where条件里面筛选就可以了,没必要用if,你把源数据和期待结果贴出来,不用贴太多
  • 打赏
  • 举报
回复
-Tracy-McGrady- 2013-02-22
charindex
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2013-02-22 01:59
社区公告
暂无公告