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再做點簡單腳本就可以查詢歷史報警了