sql - 当我想在比较中使用空参数时,应该如何处理 PL/SQL 存储过程中的空参数?

标签 sql oracle plsql

我有一个带有参数 name 的存储过程我想在 where 中使用子句匹配列的值,即类似

where col1 = name

现在当然这不匹配 nullnull因为路null作品。我需要做吗
where ((name is null and col1 is null) or col1 = name)

在这种情况下还是有更简洁的方法?

最佳答案

您可以使用 decode 功能如下:

where decode(col1, name, 0) is not null

从 SQL 引用中引用:

In a DECODE function, Oracle considers two nulls to be equivalent.

关于sql - 当我想在比较中使用空参数时,应该如何处理 PL/SQL 存储过程中的空参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4042496/

相关文章:

Mysql 查询 Union All 和 Join for League 表

sql - Oracle 12c 数据库 V$ session 值

mysql - 连接后另一个表的第二低值

database - 如何避免无数据异常?

java - 如何在Oracle(长数据)中将长html、图像和长字符串作为单列插入?

sql server 错误 - 超过锁定请求超时

sql - Visual Studio SQL Server 对象资源管理器不保存连接

sql - 从 Dual 选择 regexp_replace ('aaa_bbb' 、 '(_.)' 、上部 ('\1' ))

oracle - 故障排除 ora-29471

oracle - 如果我在同一包中的不同过程上重新编译包主体,执行过程会发生什么情况