比如我又一张员工表,userid,userage,usersalary
userid就是用户的姓名,作为主键.
如果要检索mike,nill,rose三个用户时,很简单
select * from userlist where userid in('mike','nill','rose')但是现在出现了一个问题,有三个员工都叫mike,分别属于不同的部门,研发部(tech),宣传部(advise),市场部(et).
为了防止主建重复,于是在该表中添加了一个字段叫userDepartment,只有提供userid和userdepartment时候才能唯一的确定一个用户
然后我还是要检索mike,nill,rose这三个用户,但这时候的where in就不能用一个字段了,而必须是两个字段,大概应该是下面的样子吧,但是这样肯定是不对的,我运行不下去
select * from userlist where (userid,userDepartment) in ('mike,tech','nill,advise','Rose,et') 高手指教啊
userid就是用户的姓名,作为主键.
如果要检索mike,nill,rose三个用户时,很简单
select * from userlist where userid in('mike','nill','rose')但是现在出现了一个问题,有三个员工都叫mike,分别属于不同的部门,研发部(tech),宣传部(advise),市场部(et).
为了防止主建重复,于是在该表中添加了一个字段叫userDepartment,只有提供userid和userdepartment时候才能唯一的确定一个用户
然后我还是要检索mike,nill,rose这三个用户,但这时候的where in就不能用一个字段了,而必须是两个字段,大概应该是下面的样子吧,但是这样肯定是不对的,我运行不下去
select * from userlist where (userid,userDepartment) in ('mike,tech','nill,advise','Rose,et') 高手指教啊
解决方案 »
- 如何在ORACLE中使用ISNULL来实现NVL?
- oracle 11 g 与 ms sql server 2008 性能比较?
- Oracle数据库里面怎么增加关联多个表的外键
- dg4odbc 连接 MySql
- oracle中的外键是联级删除吗?
- 可不可以通过备份恢复或导入导出,一下了就实现建 表空间、用户、服务、表 ,在给客户安装我们系统时,一步到位地实现数据库的安装?!
- 问题
- user_tables表中可不可以查看修改记录的时间?
- oracleTNSlistenser80不能自动打开???????????
- windows连接虚拟机中Linux系统下的oracle问题;错误ora-12170
- 求脚本!急!急!急!
- 如何设置sqlplus执行sql出错就自动退出
我也不是很肯定可以,没有环境来实验!
select * from userlist where userid||','||userDepartment in ('mike,tech','nill,advise','Rose,et')
select 1 from (
select 'mike' col1, 'tech' col2 from dual
union
select 'nill' col1, 'tech' col2 from dual
union
select 'rose' col1, 'tech' col2 from dual)
) t2
where t1.userid=t2.col1 and t1.userDepartment=t2.col2
)col1, col2 自己配置
in, not in 都可以用exists, not exists来代替
where (userid='mike' and userdpeartment='tech')
or (userid='nill' and userdepartment='advise')
or (userid='rose' and userdepartment='et')
晕哦~`我想到了却看到你已经写了~`,55
zzwind5,你的解决办法太过简陋了吧,不过还是多谢。
leborety(那只螃蟹) ,你的第二个办法看上去很美,不过不行。
zxjnew(重新启动),你的办法也不太好。
关于效率各位有什么讨论呢??