我要按学生的ID或姓名搜索。
是否可以在Oracle数据库中像这样使用动态: -如果参数:name为NULL,则id =:id -如果参数:id为NULL,则按名称=:name
SELECT ID, NAME, PHONE
FROM STUDENTS
WHERE .......
谢谢
答案 0 :(得分:2)
您可以将那些查询与OR组合在一起
SELECT ID, NAME, PHONE
FROM STUDENTS
WHERE (:name is null and id = :id) OR (:id is null and name=:name)
答案 1 :(得分:0)
另一种替代方法是在WHERE子句中使用CASE表达式
SELECT ID, NAME, PHONE
FROM STUDENTS
WHERE 1 = CASE
WHEN :ID IS NOT NULL AND ID = :ID THEN 1
WHEN :ID IS NULL AND NAME = :NAME THEN 1
ELSE 0
END;
好运。