【求助】这样带条件的查询语句如何写

秋天之落叶 2023-11-14 10:05:04

字段   A      B

赋值   ''       1

赋值  2        ‘’

赋值  3       4

查询想写成以下的方式:

IF A=‘’ then 查询语句为 select * from 表 where B=c

IF B=‘’ then 查询语句为 select * from 表 where A=d

IF 都不为空时 查询语句 select * from 表 where A=d and B=c

如果写成一个查询语句,能不能实现?

...全文
147 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

SELECT * FROM 表 WHERE
(A = '' AND B = 'c') OR
(B = '' AND A = 'd') OR
(A = 'd' AND B = 'c');

秋天之落叶 2023-11-14
  • 打赏
  • 举报
回复

感谢各位回复,已经解决了,实质问题是双表查询时的为空字段,试了试,case when 可以解决。

daigua1987 2023-11-14
  • 打赏
  • 举报
回复


```bash
select * from cs where A='' AND B='C'
UNION ALL
select * from cs where A='D' AND B=''
UNION ALL
select * from cs where A='D' AND B='C' AND A<>'' AND  B<>''

```
不知道你的c和d 是字符还是列

秋天之落叶 2023-11-14
  • 举报
回复
@daigua1987 这也是一个思路,用UNION拼出全集,回头试一试
huangfenzi 2023-11-14
  • 打赏
  • 举报
回复

写的好啊,感觉受益匪浅

吉普赛的歌 版主 2023-11-14
  • 打赏
  • 举报
回复

小写的 d 和 c 是什么?变量还是字段?
请给完整的示例表结构和结果

建议用动态sql

秋天之落叶 2023-11-14
  • 举报
回复
@吉普赛的歌 感谢建议,回头去学习一下动态sql

34,835

社区成员

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

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