嗨,我有過濾器在我的SQL過程是這樣的:IIF在動態where條件在SQL
IF (@LastLoginStartDate IS NOT NULL)
BEGIN
SET @sqlFilters = @sqlFilters + 'AND IIF(DPL.[LastLoginDate]=''0001-01-01 00:00:00.0000000'',''1901-01-01 00:00:00.0000000'',DPL.[LastLoginDate]) >= @LastLoginStartDateUTC ';
END
但這返回我的錯誤。那麼我怎樣才能把價值1901-01-01放在像0001-01-01這樣的價值上,並與參數@LastLoginStartDateUTC比較呢?
錯誤我收到:
Msg 102, Level 15, State 1, Line 115
Incorrect syntax near 'IIF'.
標記您正在使用的dbms。 (該代碼遠離ANSI SQL ...) – jarlh
並顯示出現錯誤的行*。這條線看起來合理,所以我加倍錯誤在那裏。 –
單獨的代碼會引發完全不同的錯誤。你應該發佈一些代碼來重現你的錯誤。我假設你有一些瘋狂的動態SQL正在進行,並且你有一個太少或太多的'''符號。或者...您的兼容級別可能不是SQL 2012.運行以查找:'SELECT name,compatibility_level FROM sys.databases'。對於2012年(使用'IIF')你的數據庫應該是110或更高。 –