T-sql中IN的替换思路
来源:互联网 发布:淘宝网店怎么看流量 编辑:程序博客网 时间:2024/05/22 13:08
使用T-sql进行ID匹配时,通常做法是将ID拼接为以逗号分割的字符串,然后使用
SELECT ID FROM TABLE WHERE ID IN ( ...,...)等。
上述做法有两个方面需要考虑.
1.IN 中能容纳的最大元素个数。(经验证最大为1000)
2.效率问题。
有以下三种思路,分别按照效率由高到低进行IN的替换使用。
1. 将需要匹配的信息(例如ID)插入临时表,遍历临时表取出ID,用=来逐个匹配。
2. 用Inner join来关联上述建立的临时表,连接字段为要匹配的元素(例如ID).
3.用EXISTS语句。
PS:
如果是将ID等信息拼接在XML中,如下:
@inputXml =
<root>
<record pk_id = ‘1’/>
<record pk_id = ‘2’/>
</root>
提供一种解析XML的匹配方式。
用更新一张表的指定ID的数据为例:
update A
SET M
FROM Table A
INNER JOIN(
SELECT
T.c.value('(@pk_id)[1]','DECIMAL(10,0)')AS ID
FROM @inputXml.nodes('/root/record')AS T(c)
)B
ON A.ID = B.ID
0 0
- T-sql中IN的替换思路
- 在sql语句中替换Not In 的方法
- 在sql语句中替换Not In 的方法
- sql IN 的用法一例--替换 mysql longtext字段中某些内容的用法
- T-Sql 函数,替换字段内的 html 标签
- T-Sql 函数,替换字段内的 html 标签
- Date in T-SQL
- iBATIS中替换“IN”的方法
- sql替换NOT IN语句
- SQL中替换字符的方法
- SQL中替换字符的方法
- sql中替换字段的部分字符
- SQL替换NOT IN的几种方法总结
- SQL替换NOT IN的几种方法总结
- T-SQL 替换多个空格
- T-SQL not in 遇到 null 暗含的陷阱
- sqlServer2005中T-SQL的增强
- 当心T-SQL中COLLATE的陷阱
- cocoachina论坛源码推荐(12.16)
- linux端口重用
- IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- 3dmax导出md5格式文件
- zookeeper与activemq最新存储replicatedLevelDB整合
- T-sql中IN的替换思路
- SSH 配置 Quartz
- TransactNamedPipe函数在切换线程时失败,GetLastError 返回 231。 再次 Read 成功。
- 2013-12-17Project : error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行生成后事件...
- 人工神经网络初涉
- iOS完整学习路线图
- 针对当下百度算法如何写原创内容?
- 操作系统课堂笔记(3)用户接口和作业管理
- js实现div整块向上移动的动画效果