sql - 存储过程参数检查非空字符串
问题描述
我正在使用 SQL Server 2016。
这是我的存储过程:
CREATE PROCEDURE usp_Test
@IGLNO VARCHAR(10) != ''
AS
BEGIN
SELECT *
FROM TABLE
WHERE IGLNO = @IGLNO
END
在这里!=''
,我尝试使用@IGLNO
带有默认NOT NULL
字符串或非空字符串的参数,而不是硬编码。
我们可以在 SQL 中做这样的事情吗?
解决方案
试试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
推荐阅读
- sql - 在 SQL 表中,我有一个用于删除列的 sql 脚本,它给出错误无效列不存在
- java - com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java) 与 ChromeDriver 和 Chrome 使用 Selenium 和 Java
- c# - ASP.Net Core 2.2 Web API 排队后台任务
- sql - 在 SQL Server 2017 中将行转换为具有条件的列
- openlayers - 如何缓存 WMS 图像图层
- symfony - Sonata Admin Override 模板取决于用户
- html - "./" 在 href 中做了什么?
- java - Mockito/PowerMock - 可以模拟新的 MyClass()?
- c# - 如何使用 SharpSvn 在 c# 中列出 SVN 存储库的所有现有修订
- ruby-on-rails - 使用茧宝石将按钮显示到另一个页面