我有一個MSSQL表(表B),其中[DBO] .tableB.myColumn在特定日期後改變格式的數據...動態/有條件SQL加入?
我做一個簡單的加入到該表..
Select [dbo].tableB.theColumnINeed from [dbo].tableA
left outer join [dbo].tableB on [dbo].tableA.myColumn = [dbo].tableB.myColumn
但是,我需要根據表A([dbo] .tableA.myDateColumn)中的日期列使用不同的格式進行連接。
喜歡的東西...
Select [dbo].tableB.theColumnINeed from [dbo].tableA
left outer join [dbo].tableB on [dbo].tableA.myColumn =
IF [dbo].tableA.myDateColumn > '1/1/2009'
BEGIN
FormatColumnOneWay([dbo].tableB.myColumn)
END
ELSE
BEGIN
FormatColumnAnotherWay([dbo].tableB.myColumn)
END
我想知道是否有一種方法可以做到這一點..或更好的辦法,我沒有想到的解決這個..
我的建議是修正數據,因爲優化器會忽略JOIN條件中的這些函數的索引 – SQLMenace 2009-02-19 18:52:03
是的,但有時您無法修復數據;-) – JoshBerke 2009-02-19 18:52:55
它是同一列,我會修復它,把一個CHECK CONSTRAINT放在它上面,這樣它就不會再發生了,因爲遲早有人會尖叫,表現是不可接受的,然後呢? – SQLMenace 2009-02-19 18:54:18