怎么了? 'ifnull'不是公认的内置函数名称

时间:2014-03-08 10:39:00

标签: 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 = 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

1 个答案:

答案 0 :(得分:3)

试试这个:

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中,请点击此链接null function in database