SQL用自己的文本替换NULL值

Kua*_* E. 7 sql postgresql

我需要从一个乐队列表中显示键盘播放器,我已经能够使用以下SQL:

SELECT BAND.NAME AS Band_Name, KBPLAYER.NAME AS Keyboard_Player
FROM BAND
FULL OUTER JOIN (
    SELECT M.NAME, MO.BID
    FROM MEMBEROF MO, MEMBER M
    WHERE MO.INSTRUMENT='keyboards'
    AND M.MID=MO.MID
    ) KBPLAYER
ON BAND.BID=KBPLAYER.BID
ORDER BY BAND.NAME, KBPLAYER.NAME
Run Code Online (Sandbox Code Playgroud)

以上查询显示该频段中所有乐队和键盘播放器(如果有)的名称,但我还想为那些没有键盘播放器的乐队显示"No KeyBoard Players".我怎样才能做到这一点?如果您需要我提供表格结构的详细信息,请告诉我.

更新:请注意,我无法使用任何SQL3 procedures(COALESCE, CASE, IF..ELSE).它需要严格遵守SQL3标准.

har*_*mic 14

使用合并功能.此函数返回其中第一个非null的参数.例如:

COALESCE(KBPLAYER.NAME,'No KeyBoard Players') AS Keyboard_Player
Run Code Online (Sandbox Code Playgroud)


Kua*_* E. 3

我决定采用不同的方式,因为我不会使用上述 SQL 进行任何操作。如果有人对上述具有设置约束的 SQL 提出建议,我将不胜感激。

SELECT 
  band.name AS Band_Name, 'NULL' AS Keyboard_Player
FROM 
  memberof
INNER JOIN 
 member
ON 
  memberof.mid = member.mid 
FULL JOIN 
  band
ON 
  memberof.bid = band.bid 
AND 
  instrument = 'keyboards'

WHERE  
  member.name IS NULL 

UNION

SELECT 
  band.name AS Band_Name, member.name AS Keyboard_Player
FROM 
  memberof
INNER JOIN 
 member
ON 
  memberof.mid = member.mid 
FULL JOIN 
  band
ON 
  memberof.bid = band.bid 
WHERE
  instrument = 'keyboards'
Run Code Online (Sandbox Code Playgroud)