请教一个IN的问题(oracle可以执行,但是sql server不行)。

zcchm 2005-12-19 09:47:16
select * from person
where (name, age) in (('张三', 20),('李四', 30))。

这句sql我记得在oracle中是合法的,但是在sql server里就不行。
难道in后面只能列出一个字段?如果这样,怎么表达我上面那个检索条件呢?
我不想用and or连接。
...全文
134 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vfssqs 2005-12-19
  • 打赏
  • 举报
回复
SELECT * FROM person
WHERE
(name='张三' and age=20) OR (name='李四' and age=30)
同意libin的SQL语句
tangchao515 2005-12-19
  • 打赏
  • 举报
回复
实在不用AND和OR那这样写试下
select * from person
where (rtrim(name)+rtrim(cast(age as cahr(2))) in ('张三20','李四30')
zcchm 2005-12-19
  • 打赏
  • 举报
回复
to WangZWang(阿来) :
这样不行的,这样会检索出来('张三', 30)。

继续up
子陌红尘 2005-12-19
  • 打赏
  • 举报
回复
SQL Server 2000不支持这样的查询,只能用:

select * from person
where (name='张三' and age=20) or (name='李四' and age=30)
WangZWang 2005-12-19
  • 打赏
  • 举报
回复
--只能列出一个字段
select * from person
where name in ('张三','李四') and
age in (20,30)
tangchao515 2005-12-19
  • 打赏
  • 举报
回复
没有办法,只能用AND,SQL SERVER又不是ORACLE,你只能按照它的语法写啊。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧