У меня есть данные в таблице MSSQL (TableB) где [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
Да, но иногда вы не можете исправить данные ;-) – JoshBerke
Это тот же столбец, я бы его исправить, поместил на него ПРОВЕРИТЬ КОНСТРУИРОВАТЬ, чтобы это не повторилось, потому что рано или поздно кто-то закричит, что производительность неприемлема, а потом что? – SQLMenace