Oracle 动态位置取决于参数是否为NULL
我想按学生的id或姓名搜索学生 是否可以在Oracle数据库中这样使用动态数据库: -如果参数:name为NULL,则其中by id=:id -如果参数:id为NULL,则where by name=:nameOracle 动态位置取决于参数是否为NULL,oracle,Oracle,我想按学生的id或姓名搜索学生 是否可以在Oracle数据库中这样使用动态数据库: -如果参数:name为NULL,则其中by id=:id -如果参数:id为NULL,则where by name=:name 选择ID、姓名、电话 来自学生 哪里 谢谢您可以将这些查询与或组合起来 SELECT ID, NAME, PHONE FROM STUDENTS WHERE (:name is null and id = :id) OR (:id is null and name=:name) 另
选择ID、姓名、电话
来自学生
哪里
谢谢您可以将这些查询与或组合起来
SELECT ID, NAME, PHONE
FROM STUDENTS
WHERE (:name is null and id = :id) OR (:id is null and name=:name)
另一种选择是在WHERE子句中使用大小写表达式
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;
祝你好运。看看COALESCE()函数。我想这就是你需要的: