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

高分求一句sql同时实现下面两个需求

2012-04-15 
高分求一句sql同时实现下面两个需求?在线等数据库表中可能会存在有如下两条数据:SQL codeFIndexFIDFChange

高分求一句sql同时实现下面两个需求?在线等
数据库表中可能会存在有如下两条数据:

SQL code
FIndex   FID   FChangeID   FCloseFlag    1     100     150           0   2     100     0             0

或者
SQL code
FIndex   FID   FChangeID   FCloseFlag    1     100     150           0   2     100     0             1


整体来看,就是两条数据的FCloseFlag和FChangeID不一样而已
现在要求写一条sql语句,同时满足需求:
1、当存在FCloseFlag=1的时候,只查询出FIndex=1的数据行
2、当存在FClaseFlag=0的时候,只查询出FIndex=2的数据行

[解决办法]
SQL code
select *from tbwhere (FClostFlag = 1 and FIndex = 1) or (FCloseFlag = 0 and FIndex = 2)
[解决办法]
或者分别求出来结果集union all
[解决办法]
如果从楼主的叙述上看,并未排除 FClostFlag 不为 0 和 1 的状态.
SQL code
SELECT * FROM TB WHERE FClostFlag=1 and FIndex=1 or FClaseFlag=0 and FIndex=2 or FCloseFlag<>1 and FCloseFlag<>0
[解决办法]
与操作优先级高于或操作,不用括号.
[解决办法]
select *
from tb
where FClostFlag = ?

?表示你输入的 FCloseFlag 的值。
[解决办法]
题意不明。。。
[解决办法]
SQL code
select distinct b.* from tb across apply(select top 1 * from tb where FID=a.FID order by FCloseFlag desc,FIndex desc) b 

热点排行