嗨,我有过滤器在我的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或更高。 –