怎么写一个条件判断 SQL语句?

xuguv 2014-01-13 02:08:46
类似这样的
先where条件1
如果返回的记录数量是0,那么再where条件2

比如

--这样的语句
select top 1 score from table where sex='female'
--如果女的一个都没有,那么只好选男的。
……where sex='male'


用编程的方法,很好写,写个判断或者循环就行了。但是有没有办法在一个单一SQL语句里实现?
主要是想在视图里实现这个效果。
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-01-13
  • 打赏
  • 举报
回复

DECLARE @s VARCHAR(max)
SET @s='select top 1 score from a where 1=1'
SELECT @s=@s+' and  sex='+CASE WHEN (SELECT COUNT(1) FROM a WHERE sex='female')=0 THEN '''male''' ELSE '''female''' END 
PRINT @s
giftzheng 2014-01-13
  • 打赏
  • 举报
回复
select top 1 * from ( select score from table where sex='female' union all select score from table where sex='male' ) b
lzw_0736 2014-01-13
  • 打赏
  • 举报
回复

--試試以下:
select top 1 score 
from table 
where sex=CASE WHEN EXISTS(SELECT * FROM TABLE WHERE sex='female') THEN 'female' ELSE 'male' end

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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