Sql 带if语句的Oracle数据库查询
我对这个查询有问题Sql 带if语句的Oracle数据库查询,sql,oracle,case,Sql,Oracle,Case,我对这个查询有问题 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 cod
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
和“-”
压缩成这样
- 1-选项
- 2-选项
- 选择权
- 选择权
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;
你能发布一些样本数据和需要的结果吗?这将澄清您的需求并帮助他人帮助您。您的代码在语法上不正确,因此您的问题很难理解。