在SQL(ORACLE)中可以选择atribute中等于参数的表中的所有条目,如果不选择所有其他条目?
就像在这个例子中一样:
COD |名称
1 |周一
2 |周四
3 |星期六
参数= 3
当cod等于参数(cod = 3)时返回cod参数(cod = 3)(包括鳕鱼和名称)的条目
否则
返回与参数(cod = 3)不同的所有其他条目(包括鳕鱼和名称)(如1周一和2周四)
是否可以使用SQL(oracle),或者我需要像PLSQL这样的东西?
答案 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)