在IN SQL语句中使用'%'或通配符,或者如何搜索不完全相同的多个文本条件

时间:2018-08-09 16:42:06

标签: sql sql-server sql-server-2008

我有sql:

Select * 
from Inventory
Where RowKey like ('%439%)

行键包含以下文本:Stock_Id =439。我需要表中Rowkey列旁边的Status列。

我有一个40个ID的列表需要寻找-除了(RowKey)('%439%')并在%% 40次之间更改数字之外,还有其他更简单的方法吗?

我尝试了

Select * 
from Inventory
where rowkey in ('%439%','%5000%') 

但是没有任何提示。

编辑:有没有办法包含AND条件?如     选择 *     从库存     RowKey像('%439%)AND oldvalue ='1'

3 个答案:

答案 0 :(得分:1)

好吧,您可以删除最后一个字符串之前的内容:

where stuff(rowkey, 1, charindex('= ', rowkey) + 1, '') in ('439', '5000')

答案 1 :(得分:1)

如果您指的是静态数字BETWEEN,则可以使用以下值:

SELECT * 
FROM INVENTORY
WHERE SUBSTRING(ROWKEY, CHARINDEX('= ', ROWKEY) + 2, 99) BETWEEN 4390 AND 5000 

答案 2 :(得分:1)

也许使用JOIN和一些XML来解析列表

示例

const result = [{id: "12345", max: "1", code: "1"}, 
                {id: "54321", max: "3", code: "201"},
                {id: "54321", max: "1", code: "401"}]