SQL从表中选择条目,其中atribute等于参数,否则选择*条目

时间:2016-05-20 17:32:56

标签: sql oracle if-statement plsql

在SQL(ORACLE)中可以选择atribute中等于参数的表中的所有条目,如果不选择所有其他条目?

就像在这个例子中一样:

COD |名称
1 |周一
2 |周四
3 |星期六

参数= 3

当cod等于参数(cod = 3)时返回cod参数(cod = 3)(包括鳕鱼和名称)的条目
否则
返回与参数(cod = 3)不同的所有其他条目(包括鳕鱼和名称)(如1周一和2周四)

是否可以使用SQL(oracle),或者我需要像PLSQL这样的东西?

2 个答案:

答案 0 :(得分:0)

IF EXISTS(SELECT 1 FROM TABLE WHERE COD=3)
THEN
  SELECT COD, NAME FROM TABLE WHERE COD=3
ELSE 
  SELECT COD, NAME FROM TABLE
END IF

答案 1 :(得分:0)

我使用相关查询和非相关查询:

dynamicNameProperty

然而,我不确定我是否完全遵循你的逻辑。

实际上,如果它来自一个表,它可以简化为:

SELECT COD, NAME 
FROM TABLE a
WHERE EXISTS (SELECT 1 FROM TABLE b WHERE b.COD = a.COD AND b.COD = 3)
    OR NOT EXISTS (SELECT 1 FROM TABLE c WHERE c.COD = 3)