-1
經與SQL命令的問題,我有一個這樣的表在SQL Server 2012:通過查詢
DECLARE @test TABLE (dateField datetime,
col1 varchar(10),
col2 varchar(10)
)
insert into @test
select dateadd(day,-1,getdate()), 'Test A', 'Other A'
union
select dateadd(day,-1,getdate()), 'Test E', 'Other E'
union
select getdate(), 'Test B', 'Other B'
union
select dateadd(day,1,getdate()), 'Test C', 'Other C'
union
select dateadd(day,1,getdate()), 'Test A', 'Other C'
union
select dateadd(day,1,getdate()), 'Test D', 'Other B'
我想在一個特定的順序檢索數據。
順序應該是:
dateField ASC
Col1 ends with A
Col2 ends with B
- 如果是的DateField比今天更大的日期,那麼就應該切換到COL1檢查。
- 如果沒有COL1以A結尾,那麼它應該切換到COL2檢查
- 如果沒有COL2以b結束,沒有行應退還
任何幫助,將不勝感激。我嘗試在SQL中執行case語句。它沒有按我的預期工作。
順序不排除行。您是訂購結果數據還是過濾? – UnhandledExcepSean
你可以展示你使用Case語句嘗試了些什麼? – pvieira
另外,請停止使用'GETDATE()+ 1' - 這是+1 ....什麼?!?!?第二?分鐘?小時?年?月?天?請改爲使用'DATEADD(datepart,.....)'函數,使其**清除**您要添加或減去日期的內容 –