首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何写一个条件判断 SQL语句

2014-01-17 
怎么写一个条件判断 SQL语句?类似这样的先where条件1如果返回的记录数量是0,那么再where条件2比如--这样的

怎么写一个条件判断 SQL语句?
类似这样的
先where条件1
如果返回的记录数量是0,那么再where条件2

比如


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


用编程的方法,很好写,写个判断或者循环就行了。但是有没有办法在一个单一SQL语句里实现?
主要是想在视图里实现这个效果。
[解决办法]

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

[解决办法]
select top 1 * from

select score from table where sex='female'
union all
select score from table where sex='male'
) b
[解决办法]

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

热点排行