【发布时间】:2023-04-03 12:45:01
【问题描述】:
我的存储过程接收到一个以逗号分隔的字符串的参数:
DECLARE @review_status varchar(200)
SET @review_status='CANCELLED,INSPECTED,REJECTED,UNASSIGNED'
我将此变量与 LIKE 运算符一起使用,如果没有逗号的值则完美但带有逗号则无法处理。 现在我用这个语句
SELECT * FROM tblReview WHERE
review_status LIKE '%' + @review_status + '%'
我需要用它来做这个声明
SELECT * FROM tblReview WHERE
review_status LIKE '%CANCELLED%' OR --Pass @review_status
review_status LIKE '%INSPECTED%' OR
review_status LIKE '%REJECTED%'.....
这样做的最佳做法是什么?
【问题讨论】:
-
严格来说,我想说最好的做法是使用表值参数而不是标量。任何时候你打破第一范式,你都可能没有遵循最佳实践。
标签: sql-server