请教一个复杂的sql问题

问题描述

我有个表,里面有个字段叫content,现在有6个关键词(限行,道路,交警,设卡,指挥,拥堵),我想查content中包含其中任意两个关键词的记录。 问题补充:有没有用一条sql语句解决的方法啊?【●】景天 写道

解决方案

抛个破砖先.create table AAA(name varchar2(10), content varchar2(20))select a.*,a.rowid from AAA a;insert into AAA (NAME, CONTENT) values ('1', 'ACA');insert into AAA (NAME, CONTENT) values ('2', 'B');insert into AAA (NAME, CONTENT) values ('3', 'CA');insert into AAA (NAME, CONTENT) values ('4', 'CCC');insert into AAA (NAME, CONTENT) values ('5', 'DDD');insert into AAA (NAME, CONTENT) values ('6', 'CBA');select name, count(name) from (select * from AAA where content like '%A%' union all select * from AAA where content like '%B%' union all select * from AAA where content like '%C%' union all select * from AAA where content like '%D%') a group by NAMEhaving count(name) >= 2;
解决方案二:
建议写个存储过程吧。。。

时间: 2024-12-04 23:30:45

请教一个复杂的sql问题的相关文章

请教一个存储过程或sql的写法

问题描述 A表:id name work     1  x   aaa     2  y   bbbB表:    id source  1  32  1  24  1  65  2  11  2  33  要得出: id  name   work     source  1    x    aaa   32,24,65  2    y    bbb    11,33这个应该怎么写呢? 非常感谢!问题补充:还想问一下 一个mysql存储过程中返回多个结果集,比如:Delimiter //drop 

请教一个查询联查SQL的写法。

问题描述 A表IDTITLE1哇靠2嘿咻B表IDNAME1奶茶假设我有两张表.现在有个SQL语句不可改变:select * from A where ID=1这个语句不可修改,但后面可以自由添加,怎么添加,才能查出B表中的Name,得到以下结果(不可改变A表数据,只是让A表的TITLE字段显示B表的NAME内容):ID=1,TITLE=奶茶谢谢.PS:我一个项目的页面上,A.TITLE是无法改变的字句...现在新增个维护表,又不能改变页面代码结构,(要改死人的维护死了)...新表和旧表的字段命名

请教一个C#+后台SQL的问题!

问题描述 新手求教,用C#调用SQL里面的一个表,显示出来.请问这个要怎么写?请帮忙写出完整代码 解决方案 解决方案二:百度,谷歌,或者找本书看吧.解决方案三:基本的数据库操作,select*fromtableA解决方案四:百度下..解决方案五:首先在web.config中配置一下:<connectionStrings><addname="constr"connectionString="DataSource=192.168.18.12;InitialCat

sql语句-请教一个SQL语句如何写?

问题描述 请教一个SQL语句如何写? 求助大侠:表A中有字段a,b,c,d,e,f,但并不是所有字段都一定有值,其中有值字段原值为'201xxxx'现在要将有值字段由'201xxxx'替换为'2001xxxx',无值字段保留为空,请问SQL语句如何写?(其中'201xxxx'中的xxxx代表数字,比如20101或201010101,位数不定,也可能只为201)请赐教. 解决方案 update [A] set [a] = left(a2)+'0'+right(alen(a)-2) [b] = le

oracle-新手请教一个sql查询问题,在线等,谢谢

问题描述 新手请教一个sql查询问题,在线等,谢谢 一张激活表TL_CSU_ACTIVATE_LOG: 一张用户表TV_CSU_USER 现在要查询2014-12to2015-12每月注册的不同类型(T,B,M,D)用户数,如下图: sql 应该怎么写 解决方案 参考Oracle行列转换 因为你的类型是固定的,所以直接查询,如果你的类型不固定,可以参考上面的链接. SELECT TT.Month ,SUM(CASE WHEN TT.TYPE = 'B' THEN Count ELSE 0 END

请教一个sql语句该怎么写

问题描述 请教一个sql语句该怎么写 table_A id a b c d table_B_id tabel_B id e f g 怎么查询的到table_A_id:这一行的able_B_id,的对应的tabel_B行 中e等于特定值.有点乱希望理解. 解决方案 select * from table_A a join table_B b on a.table_B_id = b.id where b.e = xxx; xxx为条件 解决方案二: 确实有点乱,想帮你都帮不了

sql-甲骨文请教一个SQL题目

问题描述 甲骨文请教一个SQL题目 表 cf01,cf02 cf01是大类,cf02是小类,归于大类下. 要求,列出 cf01表中 fyrq不为空,且在2015/1/1 00:00:00和2015/1/31 23:59:59之间cf02表中的所有小类数据并对应回cf01表的fyrq字段. cf02表中的cfsb字段,为cf01表的cfsb对应 附加要求1,cf02表中,ypxh字段,对应yk_typk表的ypxh字段,请同时把yk_typk表中的ypmc,ypgg字段取出 附加要求2,cf01表

一请教一个sql查询语句

问题描述 一请教一个sql查询语句 在table1表里查询a字段大于3的记录,然后这些结果记录降序的排列后的前5条记录. 解决方案 select top 5 * from table1 where a > 3 order by 排序字段 desc 解决方案二: 不好意思,请问mysql的该怎么写呢? 解决方案三: select * from table1 where a>3 order by 排序 desc limit 5 解决方案四: 一个值得纪念的SQL查询语句

sql-求助:请教一个SQL语句的算法

问题描述 求助:请教一个SQL语句的算法 业务逻辑:在财务中,在一个结算周期内的结算金额没有达到结算限额,则此次不做结算,将此次结算金额累计到下一个结算周期内结算,直到满足结算限额才结算.其中每一个合同的计算限额不同. 举例:已知的合同号001的结算限额为200 ,合同号002的结算限额为300 合同号A 结算日B 结算金额C 想得到的结果D 001 1.1 100 0 001 2.1 110 210 001 3.1 120 0 001 4.1 130 250 001 5.1 140 0 001