【发布时间】:2011-12-02 18:32:36
【问题描述】:
我正在返回一个包含名称、课程和课程代码的查询,但如果课程代码为空,我想显示“未注册”。 我可以通过使用“默认”来做到这一点吗? 选择语句来自 VIEW 是否会有所不同。
CREATE VIEW STUDENT_LIST
(studentname, dateofbirth, coursecode)
AS
SELECT COURSECODE, STUDENTNAME, DATEOFBIRTH
FROM STUDENT;
SELECT STUDENTNAME, DATEOFBIRTH, NVL(COURSECODE,"NOT_ENROLLED")
FROM STUDENT_LIST;
我收到回复 NOT ENROLLED 无效标识符...我试过不带引号 我正在使用 oracle。
【问题讨论】:
-
请提供更多细节;例如,感兴趣的 select 语句会有所帮助。
-
还有您正在使用的 DBMS。正如@user983064 指出的那样,不同的实现具有不同的空合并功能。
-
您使用的是什么形式的 SQL? sql-server / mysql?
-
什么技术?我们是在谈论直接查询 SQL 吗?如果是,是什么类型的 SQL(MS Sql、MySql 等等)。这是其他类型的代码(.NET、Java)吗?有几种方法可以处理此要求,具体取决于您的环境。
-
从 Oracle 8i 开始,您可以使用 COALESCE 而不是 NVL,它是 ANSI 标准。正如其他人指出的那样,如果您使用单引号而不是双引号,则任何一个都可以工作。