2017-03-16 426 views
0

这是我的代码。IfNULL给出错误

SELECT CustNum, IFNULL(CustRep, 'None') AS CustRep 
FROM Customers; 

我得到的错误是

ORA-00904: “IFNULL”:无效的标识符 00904. 00000 - “%s的:无效的标识符” *原因:
*行动: 错误在线:11列:8

我知道问题是与IFNULL,但我不确定为什么。

回答

0

我想你想要COALESCE()

SELECT CustNum, COALESCE(CustRep, 'None') AS CustRep 
FROM Customers; 
+0

当我使用COALESCE()它告诉我,它需要一个数。 CustRep是一个字符有没有办法解决这个问题? –

+0

'COALSCE()'在字符串上工作得很好。你确定'CustRep'是一个字符串吗? –

1

我不知道IFNULL,但你可以在你的场景中使用NVL

SELECT CustNum, NVL(CustRep, 'None') AS CustRep 
FROM Customers; 
+0

我得到一个无效的数字错误。 CustRep是一个字符有没有办法解决这个问题? –

+0

您可以将其更改为NVL(TO_CHAR(CustRep),'无') –