gpt4 book ai didi

sql-server - nvl 不是可识别的内置函数名称

转载 作者:行者123 更新时间:2023-12-01 22:17:16 27 4
gpt4 key购买 nike

我在 SQL Server 上执行以下查询但出现错误:

SELECT DISTINCT t1.p_id "Id",
(TO_CHAR("sysdate", 'YYYY') + least(SIGN(("sysdate" - to_date('01-Aug-' | | TO_CHAR("sysdate", 'YYYY'), 'DD-Mon-RRRR'))), 0)) "Year"

FROM
t1,
t7,
t9
WHERE
t9.ei_id(+) = t7.e_id
AND (t7.e_student = t1.p_id)
AND (t7.e_module = t8.m_id)
AND (NVL(t9.ei_q18m06, t7.e_end) > '31-Jul-' | | (TO_CHAR("sysdate", 'YYYY') + least(SIGN(("sysdate" - to_date('01-Aug-' | | TO_CHAR("sysdate", 'YYYY'), 'DD-Mon-RRRR'))), 0) + - 5))

Error:

'nvl' is not a recognized built-in function name.

知道如何避免这种情况吗?

最佳答案

NVL 是 Oracle 语法

SQL Server 中对应的函数是ISNULL :

AND (ISNULL(t9.ei_q18m06, t7.e_end) > '31-Jul-' | | (TO_CHAR("sysdate", 'YYYY') + least(SIGN(("sysdate" - to_date('01-Aug-' | | TO_CHAR("sysdate", 'YYYY'), 'DD-Mon-RRRR'))), 0) + - 5))

更好的是,使用标准 ANSI 的 COALESCE() 并被 Oracle 和 SQL 服务器接受

AND (COALESCE(t9.ei_q18m06, t7.e_end) > '31-Jul-' | | (TO_CHAR("sysdate", 'YYYY') + least(SIGN(("sysdate" - to_date('01-Aug-' | | TO_CHAR("sysdate", 'YYYY'), 'DD-Mon-RRRR'))), 0) + - 5))

SQL NULL Functions

关于sql-server - nvl 不是可识别的内置函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44069662/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com