|
|
1
118
|
|
|
2
48
|
|
|
3
13
有两种方法可以处理TSQL查询的动态csv列表: 1) 使用内部选择
|
|
|
4
9
不使用like,而是与函数返回的表进行内部联接:
在一个没有索引的1M记录表中,第二个版本花费了大约一半的时间。。。
|
|
|
5
5
请注意,对于长列表或生产系统,不建议使用这种方法,因为它可能比简单的方法慢得多
|
|
|
6
5
从SQL2017开始,您可以使用 STRING_SPLIT 这样做:
|
|
7
4
|
|
|
8
4
@LukeH稍有改进,无需重复“INSERT INTO”: 和@realPT的答案-无需选择:
|
|
|
9
4
|
|
|
10
2
如果要在不使用第二个表的情况下执行此操作,可以与CAST进行类似的比较:
用逗号包围列匹配和每个唯一值将确保精确匹配。否则,将在包含',4,2,15,'的列表中找到值1 |
|
11
1
正如之前没有人提到的,从SQLServer2016开始,您还可以使用json数组和
你可以试一下 sql fiddle demo Search list of values and range in SQL using WHERE IN clause with SQL variable? |
|
|
12
1
这一个使用PATINDEX将表中的id与非数字分隔的整数列表进行匹配。
|
|
|
13
0
|
|
|
14
-1
看一看 sp_executeSQL |
|
|
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 2 年前 |
|
|
Nick Fleetwood · 调度语法的LINQ查询 3 年前 |
|
|
Mateen Bagheri · 选择表的计数并选择其自身 3 年前 |
|
Java · 使用交叉应用同时显示两列 3 年前 |