我对此查询有疑问。
SELECT
codigo clave, descrip valor
CASE
WHEN codigo IS NOT NULL
THEN SELECT codigo clave, codigo || ' - ' || descrip valor
ELSE
CASE
WHEN codigo IS NULL
SELECT codigo clave, descrip valor
END
我需要将code
和"-"
合并成这样
但是,在某些情况下,代码的值为空,并且它的打印结果如下:
答案 0 :(得分:0)
您可以使用函数NVL2
来构建查询。它具有三个参数
NVL2(expr1, expr2, expr3)
如果expr1不为NULL,则返回expr2;如果为NULL,则返回expr3。
例如,NVL2(codigo,'codigo-','')
仅在codigo不为空时才添加'-'。
情况更加复杂,您可以使用CASE
语句,例如:
SELECT CASE
WHEN codigo IS NOT NULL and descrip IS NOT NULL THEN codigo||'-'||descript
WHEN codigo IS NOT NULL and descrit IS NULL THEN codigo
WHEN codigo IS NULL ANd descrip IS NOT NULL THEN descrip
ELSE NULL
END as myresult
FROM mytable;