sqlserver多个in
这跟你的存储过程有关,明显是传进去的id值拼接成了一个字符串,存储过程没处理,导致存储过程真正执行的sql是这样的↓
select * from tb where id in('1002,5008')
看到没,数据库就认为'1002,5008'这个是一个单独的id
把存储过程的sql打印出来看下你就清楚了。
B. sql 请教update语句in多个值时,进行多次更新
在数据库的操作中,更新数据,是很常见的情况。其中sql 请教update语句in多个值时,进行多次更新的方法为:
1、创建一个临时表,用于演示sqlserver语法中update更新修改使用方法。
注意事项:
SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。
C. sqlserver 多表 <> not in 哪个速度快
首先说明,in的效率就不高,not的效率更底,所以二者结合就效率不高了。
至于为什么,从大了说,in和not都跟索引没有关系,而且就算相关字段有索引二者也都不会走,走的都是全表查询,那么这肯定不会快。
再说语句本身,not in 首先要判断是不是in,然后在判断not,这是两个过程,相当于一个补集,等于判断了两次,那么自然也就会慢一些。
其实凡是涉及到否判断的都有这样的问题。所以个人一般不建议使用否判断的条件,就算需要有,也需要尽量简化查询内容以后使用(举个简单的例子,原来你的not in需要在1千条数据中查找,现在在10条数据中查找,自然是后者快一些),这样才能让查询更加快捷。
D. --关于SQL2000中如何删除重复数据,求教,老是提示语法错误.SQL 支持多个不同类型的字段 in()吗
sqlserver不支持,in前只能有一个字段,如果多个的要是用exists
例如,
delete from RECORD where
exists
(select 1 from RECORD as a
where DATE between '2013-01-09 17:24:43' and '2013-01-10 17:19:51'
and a.DATE=RECORD. and a.CARD_NUM=RECORD.CARD_NUM
and a.PAY=RECORD.PAY and a.DISTANCE=RECORD.DISTANCE
group by DATE,CARD_NUM,PAY, DISTANCE having count(*) > 1 )
E. JDBC连接sqlserver数据库in()参数
你好!
不是你拼接的问题吧我觉得你那个 SQL 在SQLSERVER 客户端就不能执行!
你先把SQL 在客户端正常执行之后,在放入程序哇!
您试试吧!
欢迎追问,谢谢采纳~~
F. access 数据库 某一列的条件 是多个值 sqlserver 可以用in 搞定 access 怎么弄啊
access也可以用in呀。
G. sqlserver的查询结果按照in条件顺序输出
按指定顺序输出数据,可以使用order bycharindex(','+convert(varchar,ID)+',',',3,1,2,5,4,')的方法来实现这个目的
selectid,title
fromtbname
whereidin(3,1,2,5,4)
orderbycharindex(','+convert(varchar,ID)+',',',3,1,2,5,4,')
H. sqlserver 数据库根据多个ID查询效率怎么写比较高
请问用户有耐心选择1000个吗?如果用户有耐心那让它等又何妨,和效率相比此处更优先的是重新设计
I. SQLSERVER语句 in和exists哪个效率高本人测试证明
大家可以看到除了执行时间有一点差别,IO是一样的因为数据量比较大,所以两个查询都用到了Worktable(中间表)来存储中间结果IN语句的执行计划从执行计划可以看到两个SQL语句的开销都是一样的,而且大家都使用了右半连接(Right Semi Join)