日期:2014-05-18 浏览次数:20412 次
FIndex FID FChangeID FCloseFlag 1 100 150 0 2 100 0 0
FIndex FID FChangeID FCloseFlag 1 100 150 0 2 100 0 1
select * from tb where (FClostFlag = 1 and FIndex = 1) or (FCloseFlag = 0 and FIndex = 2)
------解决方案--------------------
或者分别求出来结果集union all
------解决方案--------------------
如果从楼主的叙述上看,并未排除 FClostFlag 不为 0 和 1 的状态.
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 的值。
------解决方案--------------------
题意不明。。。
------解决方案--------------------
select distinct b.* from tb a cross apply(select top 1 * from tb where FID=a.FID order by FCloseFlag desc,FIndex desc) b