sql2005in
㈠ sql2005 中 使用 in 关键字报错
--提示子查询多个结果加top或加where条件保证只有一条结果
updateU8CUSTDEF_0034_E002set
jssj=@rq,jsbz=1
whereU8CUSTDEF_0034_E002_PKin(selecttop1pkfromU8C)
㈡ sql2005语句中in、like、=、exist四个的节省资源方面比较
我记得你昨天好像也问过,我当时就说能用EXISTS尽量用EXISTS了
其实既然用EXISTS很少会用到IN的,否则就是画蛇添足了。
你的这个例子没有价值,本来就没有用到IN。
我给你个例子吧,
假设有三个表
学生S(S#,SNAME,AGE,SEX)
学习SC(S#,C#,GRADE)
课程C(C#,CNAME,TEACHER)
现在要检索WANG同学未学的课程的课程号。
分别有两种方法能完成查询(in,exists)
方法一:
Select c#
From C
Where c# not in (select c#
From sc,s
Where s.name=’wang’and s.s#=sc.s#)
方法二:
Select c#
From c
Where not exists(select *
From s,sc
Where s.s#=sc.s# and sc.c#=c.c# and sname=’wang’)
在这个查询中可能速度差别不大,但是实际中如果数据量大的话,能用EXISTS那就尽量用EXISTS,因为嵌套在IN内的的SQL语句返回的是具体结果,而EXISTS只返回[是]还是[否],一般速度比IN快很多
另外,like就不要和它们做比较了,根本就不是一件事情,功能不同的。
IN的本质是N个等于,中间用OR连起来,效率和IN是一样的,如果你不嫌烦的话,你甚至可以把IN里面的几百件个结果用几百上千个等于号连起来,查询效率是一样的,只不过,可能到下班你那句SQL还没有写完吧。
㈢ SQL中in的问题请教
select a.*,b.name from table1 as a left join table2 as b on a.id=b.id where a.id in ('1','2','3')
--a.id=b.id 根据连接条件改一下。
㈣ sql server2005 里有这样一条sql ,in子句里包括一个like子句,有没有好办法解决这样的嵌套
不如你把你的需求发出来,你这样说不太好解决,因为不知道需求就不知道有没有其他什么办法来处理。
你可以试试用Union all,将IN里面的每一项分开来,然后Union all,这样的效率肯定比你描述的这种嵌套好些。
㈤ SQL 2005:下面的SQL语句在运行时,报in处有语法错误,请问该怎么改
insert into Student(S_no,S_name,S_sex) select a,b,c from Student where s_no in ('1','2','3');
--1,2,3表示s_no列值,a,b,c表示列名。
㈥ sqlserver2005 in recovery怎么办
数据库出现异常后系统的自动恢复,这种情况就只有等,没有别的办法
㈦ sqlserver2005 type in (N'U')的type是什么意思
type就是sys.objects表中的一个字段,代表类型
这个表里的数据是数据库中的对象
而这个U则代表USER_TABLE,也就是用户表的意思
全句的含义是,如果不存在Artist名字的用户表
然后下边应该还有其他语句
㈧ sql server 05 中case和In的区别是什么
sqlserver
05中IN
操作符允许我们在
WHERE
子句中规定多个值。语法如下:
SELECT
column_name(s)
FROM
table_name
WHERE
column_name
IN
(value1,value2,...);
CASE
可能是
SQL
中被误用最多的关键字之一。下面是它的语法:
SELECT
<myColumnSpec>
=
CASE
WHEN
<A>
THEN
<somethingA>
WHEN
<B>
THEN
<somethingB>
ELSE
<somethingE>
END
综合上面两个关键字的用法,我们不难发现,他们基本上没有什么共同点,从语法、用法、用处、以及操作的对像都是不同的。
㈨ 如何配置SQL2005,实现InTouch报警历史查询
如何配置SQL2005,实现InTouch报警历史查询
首先需要安装SQLSERVER2005或2008,然后用Alarm DB log Manger创建一个数据库,默认名字为WWalmdb就可以,这样在SQLServer中就建立了一个叫做WWalmdb的数据库,intouch运行时Alarm DB log Manger必须也在运行才能将历史报警记录到SQLSERVER中,然后用InTouch自带的ALmviewDBctrl控件连接上WWalmdb再做点简单脚本就可以查询历史报警了