2张表
t1 人员基础信息表 id唯一
id name
1111 偶尔
2222 里t2 人员证书表 id+type唯一
id type(证书类型) paper
1111 1 证书名称1
1111 2 证书名称2
2222 3 证书名3
2222 1 证书名4我的查询页面有一个查询条件是,证书,现在是勾选的复选框,可以选择证书类型作为条件,
目前我是把这个条件,有勾选的 证书类型 编号组成一个用逗号隔开的字符串
例如“1,2”查询同时拥有1,2类型证书的人员
“1,2,3”查询同时拥有1,2,3类型证书的人员?
这样的sql条件要如何写呢?另外我查询出的结果列表要,要显示全部证书?这又如何写呢?
id name paper
1111 偶尔 证书名称1,证书名称2
2222 里 证书名3,证书名4
t1 人员基础信息表 id唯一
id name
1111 偶尔
2222 里t2 人员证书表 id+type唯一
id type(证书类型) paper
1111 1 证书名称1
1111 2 证书名称2
2222 3 证书名3
2222 1 证书名4我的查询页面有一个查询条件是,证书,现在是勾选的复选框,可以选择证书类型作为条件,
目前我是把这个条件,有勾选的 证书类型 编号组成一个用逗号隔开的字符串
例如“1,2”查询同时拥有1,2类型证书的人员
“1,2,3”查询同时拥有1,2,3类型证书的人员?
这样的sql条件要如何写呢?另外我查询出的结果列表要,要显示全部证书?这又如何写呢?
id name paper
1111 偶尔 证书名称1,证书名称2
2222 里 证书名3,证书名4
解决方案 »
- oracle中文乱码的问题
- 在线等哟:麻烦哪位好心人帮帮忙,小女子在此谢过了,O(∩_∩)O~
- 谁能介绍一下基于Oracle和SqlServer的数据集成方案?
- 我想实现这样目的:当输入id时显示对就id的内容,不输入时全部显示
- 帮个忙哈,一个sql不知道怎么写
- linux下oracle9204的连接问题,在linux服务端连不数据库,但是在客户端通过命令行(cmd>>sqlplus /nolog)可以连上, 问题解决马上结账,绝
- 日期型类型字段问题
- Oracle 8i中的问题?
- 有谁会PSP(PL/SQL PAGE)啊?我有问题请教。
- 我想修改Oracle系统安装时候默认的SID如何改?
- 再发一贴,求助一条查询sql
- 帮看看这个存储过程错在哪里?谢谢!
wm_concat(t2.paper) paper
from t1,t2
where t1.id=t2.id
我的查询页面有一个查询条件是,证书,现在是勾选的复选框,可以选择证书类型作为条件,
目前我是把这个条件,有勾选的 证书类型 编号组成一个用逗号隔开的字符串
例如“1,2”查询同时拥有1,2类型证书的人员
“1,2,3”查询同时拥有1,2,3类型证书的人员?
这样的sql条件要如何写呢?这个要如何整呢?
from t1 a,(select id,type,paper,count(*) over(partition by id) rn from t2) b
where a.id=b.id and rn>=2
group by a.id,a.name
string sqlstr="select * from t1 where t1.id in (select id from t2 where type in ("+str +
") group by id having count(1) = ceil(length('"+str+ "') / 2))";
字符串我已经拼好了,传到后台的参数就是字符串“1,2,3”这样
就是不知道怎么写sql例如“1,2”查询同时拥有1,2类型证书的人员
“1,2,3”查询同时拥有1,2,3类型证书的人员?
就是不知道怎么写sql
---------------------------------
我给你的sql是完成你的第一个问题,你是要一步完成到第二个问题?
"t2.type in (" + str + ") and t1.id in (select id from t2 where type in (" + str +
") group by id having count(1) = ceil(length('" + str + "') / 2)) group by t1.id ,t1.name";输出一下你拼接后的sql字符串,看看能不能在窗口中执行查询。
from t2
where cert_type in (01, 02, 05)
group by id
having count(1) = ceil(length('01,02,05') / 2)t2 人员证书表 id+type唯一
id type(证书类型) paper
1111 01 证书名称1
1111 02 证书名称2
1111 05 证书名3数据库里有上面这样3条记录的
这样的sql是不是该查出 1111 这条呢?
可是我在数据库里查不出来
一个用交集或计数。
一个用vm_concat.
其实一开始我不懂 这个是干嘛的