我们在这里有一个场景,如果下面的条件不是真的我们需要返回汽车而不返回任何东西(或者如果真的那么返回null)
table-> from car_list
condition where color = red and color_tinge = light and car = ?
现在可以有多个值为color = red和color tinge = anything ......我们只需要满足两种情况的值。 以下是该表的示例数据:
car color color_tinge a1 red light a2 red dark a1 green light a3 blue dark
如果条件不正确,输出数据应为car#(我们正在通过 汽车编号为条件)如果条件为真,则为null或无;
任何帮助表示赞赏!
答案 0 :(得分:2)
选择汽车 来自car_list 哪里 不是(color ='red'和color_tingle ='light') 和car = car_id;
答案 1 :(得分:0)
DECLARE
myCar VARCHAR(20);
然后......
SELECT
car
FROM
table
WHERE
color != 'red' AND tinge != 'light' AND car = myCar
或者...
SELECT
DECODE (color, 'red', DECODE (tinge, 'light', 'FAIL', 'PASS'), 'PASS')
FROM
table
WHERE
car = myCar
答案 2 :(得分:0)
...初始化
创建表格你的表格( CAR VARCHAR2(20 BYTE), COLOR VARCHAR2(20 BYTE), TINGE VARCHAR2(20 BYTE));插入到您的价值观中 ( 'A1', '红色', '光');
插入您的价值观('a2','红色','黑暗');
插入您的价值观('a1','绿色','亮');
插入您的价值观('a3','蓝色','黑暗');
COMMIT;
SELECT * FROM YOURTABLE;
则...
SET serveroutput ON
DECLARE
ret VARCHAR2(10);
CURSOR c_cur (p1 VARCHAR2)
IS
SELECT COUNT(1)
FROM YOURTABLE
WHERE color = 'red'
AND tinge = 'light'
AND CAR = p1;
BEGIN
OPEN c_cur('a2');
FETCH c_cur INTO ret;
IF ret = 1 THEN
dbms_output.put_line('pass');
ELSE
dbms_output.put_line('fail');
END IF;
END;
答案 3 :(得分:-2)
这将返回car#ID
或NULL
。不确定我是否理解你想要的东西。
SELECT
CASE WHEN EXISTS
( SELECT *
FROM car_list
WHERE color = red
AND color_tinge = light
AND car = car#ID
)
THEN NULL
ELSE car#ID
END AS Result
FROM dual
这会有用吗?
SELECT Result
FROM
( SELECT
CASE WHEN EXISTS
( SELECT *
FROM car_list
WHERE color = red
AND color_tinge = light
AND car = car#ID
)
THEN NULL
ELSE car#ID
END AS Result
FROM dual
) tmp
WHERE Result IS NOT NULL