Sql server 2008 怎么了?”ifnull'不是可识别的内置函数名

Sql server 2008 怎么了?”ifnull'不是可识别的内置函数名,sql-server-2008,Sql Server 2008,我正试图解决这个问题,但我似乎无法找出问题所在。有什么帮助吗 select s.IDENTIFIERS, s.store_id, ifnull(d.SALES_PRICE,ifnull(u.SALES_PRICE,s.SALES_PRICE)) as SALES_PRICE from BOOK_SALES as s LEFT OUTER JOIN store AS BV ON bv.store_id

我正试图解决这个问题,但我似乎无法找出问题所在。有什么帮助吗

select s.IDENTIFIERS,
       s.store_id,
       ifnull(d.SALES_PRICE,ifnull(u.SALES_PRICE,s.SALES_PRICE)) as SALES_PRICE
       from BOOK_SALES as s
       LEFT OUTER JOIN store AS BV 
                    ON bv.store_id = s.store_id 
   left outer join discount as d
                on d.IDENTIFIERS=s.IDENTIFIERS
               and d.from_date<=s.sales_date
               and d.to_date>=s.sales_date
               and u.to_date<0>
   left outer join discount as u
                on u.IDENTIFIERS=s.IDENTIFIERS
               and u.to_date=0
试试这个:

select s.IDENTIFIERS,
       s.store_id,
       isnull(d.SALES_PRICE,isnull(u.SALES_PRICE,s.SALES_PRICE)) as SALES_PRICE
       from BOOK_SALES as s
       LEFT OUTER JOIN store AS BV 
                    ON bv.store_id = s.store_id 
   left outer join discount as d
                on d.IDENTIFIERS=s.IDENTIFIERS
               and d.from_date<=s.sales_date
               and d.to_date>=s.sales_date
               and d.to_date='12/12/1989'
   left outer join discount as u
                on u.IDENTIFIERS=s.IDENTIFIERS
               and u.to_date='12/12/1989'
如果在“我的sql不在sql server中”中使用NULL,请遵循此链接尝试以下操作:

select s.IDENTIFIERS,
       s.store_id,
       isnull(d.SALES_PRICE,isnull(u.SALES_PRICE,s.SALES_PRICE)) as SALES_PRICE
       from BOOK_SALES as s
       LEFT OUTER JOIN store AS BV 
                    ON bv.store_id = s.store_id 
   left outer join discount as d
                on d.IDENTIFIERS=s.IDENTIFIERS
               and d.from_date<=s.sales_date
               and d.to_date>=s.sales_date
               and d.to_date='12/12/1989'
   left outer join discount as u
                on u.IDENTIFIERS=s.IDENTIFIERS
               and u.to_date='12/12/1989'

IFNULL用于My sql而非sql server请点击此链接

将ISNULL用于sql server。谢谢,现在我得到:[Err]42000-[sql server]无法绑定多部分标识符u.to_date。正如@Michai所说,如果第一个参数为null,您可能需要ISNULL,请返回第二个参数,否则返回第一个参数,但也有null如果第一个参数和第二个参数相同,则返回null,否则返回第一个参数对于sql server使用ISNULL。谢谢,现在我得到:[Err]42000-[sql server]多部分标识符u.to_date无法绑定。正如@Michai所说,如果第一个参数为null,则可能需要ISNULL,返回第2个参数,否则返回第1个参数,但也有null如果第1个参数和第2个参数相同,则返回null,否则返回第1个参数谢谢,在“>”附近得到:[Err]42000-[SQL Server]不正确的语法。现在与上面相同:[Err]42000-[SQL Server]无法绑定多部分标识符u.to_date。请在第一个中将u更改为d。谢谢,仍然会出现错误。。[Err]22018-[SQL Server]操作数类型冲突:日期与tinyint//不兼容。是否应使用0000来设置表中的无限日期?或任何其他提示?将0更改为特定日期谢谢,在“>”附近获得:[Err]42000-[SQL Server]不正确的语法。现在与上面相同:[Err]42000-[SQL Server]无法绑定多部分标识符u.to_日期。在第一个日期中将u更改为d。谢谢,仍然获得错误tho。。[Err]22018-[SQL Server]操作数类型冲突:日期与tinyint//不兼容。是否应使用0000来设置表中的无限日期?或任何其他提示?将0更改为特定日期