在SQL中为空值赋予标签

Car*_*ven 0 sql oracle

我的SQL声明如下:

Select TableB.section 
from TableA left join TableB on TableA.fk = TableB.pk 
group by TableB.section
Run Code Online (Sandbox Code Playgroud)

因为这样left join,有TableB.Section可能返回null,因为一行TableA.fk可能为null,因此group by子句将为该行返回null.

所以我有可能得到这样的东西:

TableB.Section
-------------
| Section 1 |
+-----------+
| Section 2 |
+-----------+
| NULL      |
+-----------+
Run Code Online (Sandbox Code Playgroud)

如何NULL在我的SQL语句中将单词替换为类似:"无值"的漂亮文本?

Mah*_*kar 6

你还需要Apply NVL()/ COALESCE()in GROUP BYClause!
否则它本身就是一个语法错误

Select NVL(TableB.section, 'No Value')
from TableA left join TableB on TableA.fk = TableB.pk 
group by NVL(TableB.section, 'No Value')
Run Code Online (Sandbox Code Playgroud)


dav*_* a. 5

Select NVL(TableB.section, 'No Value')
from TableA left join TableB on TableA.fk = TableB.pk 
group by TableB.section
Run Code Online (Sandbox Code Playgroud)