我想查询sql列的行是否包含多个值中的任何一个.
例如,返回表的列,其中列A包含以下任何单词:
( ‘母牛’,‘农民’,‘牛奶’).@H_403_4@
当你知道单词是什么时很容易,但是我想写一个sproc,我可以在任何字符串数组中输入,如果某行的A列包含其中的任何一个,它将返回该行.@H_403_4@
我希望能够提供:@H_403_4@
( ‘母牛’,‘牛奶’)@H_403_4@
要么@H_403_4@
( ‘母牛’,‘牛排’,‘让人惊讶’)@H_403_4@
要么@H_403_4@
('cow','farmer','three','pigs','wolf')
解决方法
一个简单的方法:
declare @candidates varchar = '|cow|farmer|three|pigs|wolf|' select * from TableName where @candidates like '%|' + FieldName + '|%'
在sql 2008中执行此操作的最佳方法是使用table-valued parameter.@H_403_4@