34,835
社区成员




字段 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
如果写成一个查询语句,能不能实现?
SELECT * FROM 表 WHERE
(A = '' AND B = 'c') OR
(B = '' AND A = 'd') OR
(A = 'd' AND B = 'c');
感谢各位回复,已经解决了,实质问题是双表查询时的为空字段,试了试,case when 可以解决。
```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 是字符还是列
写的好啊,感觉受益匪浅