首页 > 解决方案 > 存储过程参数检查非空字符串

问题描述

我正在使用 SQL Server 2016。

这是我的存储过程:

CREATE PROCEDURE usp_Test
    @IGLNO VARCHAR(10) != ''
AS
BEGIN
    SELECT * 
    FROM TABLE 
    WHERE IGLNO = @IGLNO
END

在这里!='',我尝试使用@IGLNO带有默认NOT NULL字符串或非空字符串的参数,而不是硬编码。

我们可以在 SQL 中做这样的事情吗?

标签: sqlsql-server

解决方案


试试CASE Stmt:

CREATE PROCEDURE usp_Test
@IGLNO VARCHAR(10)
AS
BEGIN
SELECT * FROM TABLE WHERE IGLNO = CASE WHEN @IGLNO='' THEN IGLNO ELSE @IGLNO END
END

推荐阅读