當前位置:首頁 » 編程語言 » sqlinnotinand

sqlinnotinand

發布時間: 2022-09-03 02:51:19

1. 存儲過程sql語句 not in問題

樓上的不排除投機取巧(褒義)呵呵、
如果user真的有存在的房號,人不在房間的問題,不與username比較是不是也顯示不出來了呢。呵呵!

select roomid,'房間號不存在'
from [user]
where roomid not in (select distinct roomid from room )
union all
select roomid,'此人不在此房間中'
from [user]
where username not in (select a.username from room a,[user] b where a.roomid = b.roomid and a.username = b.username)
and roomid not in (select roomid
from [user]
where roomid not in (select distinct roomid from room ))
這個就OK了。
下面操作必須執行,要篩選人和房間的匹配哦,雖然辦法垃圾,只是在外層查詢篩選不存在的房間,不過也是一種辦法哦。呵呵!~
第二問題我不是很明白你的意思。代替值為空可以用ISNULL。

2. sql in 和 not in 怎麼有那麼大的區別

因為有空數據的存在,空數據是不包含在 in 與 not in 之間的.

3. sql 語句 not in 問題 在線等

select
distinct
ss.singerpic
from
songlist
s
join
singerlist
ss
on
s.singerid
=ss.singerid
where
s.rtsp=1
not
in
(select
dic
from
a)
朋友,sql語法不是那樣的。

4. sql in和not in集合運算只能用於一個欄位嗎

可以啊,各個欄位分別用這個關鍵字作為判斷條件。比如
select * from tabname
where f1 in ('A', 'B', 'C')
and f2 not in ('MM', 'QQ');

5. sql not in 修改

第一種方式是使用 差集EXCEPT.(這個未測試,可能會有些問題)
select top (2*4) MessageInfo,(select UserName from UserInfo where UserId=FromId) as FromUser,(select UserName from UserInfo where UserId=ToId) as ToUser,Date from Message where IsOpen=1 order by Date desc
EXCEPT --可以使用ALL.這樣就不會消除重復行了
select top (2*4-4) MessageInfo,(select UserName from UserInfo where UserId=FromId) as FromUser,(select UserName from UserInfo where UserId=ToId) as ToUser,Date from Message where IsOpen=1 order by Date desc
第二種方式,使用NOT IN:
select top (2*4) MessageInfo,(select UserName from UserInfo where UserId=FromId) as FromUser,(select UserName from UserInfo where UserId=ToId) as ToUser,Date from Message where IsOpen=1
and 你的主鍵ID或者你選擇的某一列 NOT IN (select top (2*4-4)
你的主鍵ID或者你選擇的某一列
from Message where IsOpen=1 order by Date desc)
order by Date desc
那第三種的話,可以使用NTILE排序函數.我大概寫一下,等下可以詳聊:
select * from (
select top (2*4) MessageInfo,(select UserName from UserInfo where UserId=FromId) as FromUser,(select UserName from UserInfo where UserId=ToId) as ToUser,Date
, ntile(2) over(order by Date) as nt
from Message where IsOpen=1 order by Date desc
)where nt=2
呵呵,先就這些吧,沒怎麼測試,希望能幫到你~

6. sql語句中的not in 語句

SELECT * FROM TABEL1 WHERE FILEDI NOT IN ( SELECT FILED1 FROM TABLE2) AND FILED2 NOT IN (SELECT FILED2 FROM TABLE3)
直接AND就可以了

7. sql 語句中in ,not in

如果系統不自動優化,並且IN的結果很多,那麼有可能IN和NOT IN的效率低些。

所有的IN都可以轉換為EXISTS,同樣NOT IN可以轉換為NOT EXISTS,下面說明IN轉換為EXISTS的方法,NOT的類似:

IN的語句:
SELECT * FROM A WHERE F IN (SELECT F FROM B)

可以轉換為如下的EXISTS語句:
SELECT * FROM A WHERE EXISTS
(SELECT * FROM B WHERE A.F=B.F)

上面轉換的說明:兩個WHETE都可能有更多都條件,那麼直接AND在相應的地方即可。另外表A和B的關聯欄位可能名字表同,也司沒關系的。

8. SQL中not in的等價操作符是什麼啊

not in 等價於 欄位 <>選項1 and 欄位 <>選項2 and 欄位 <> 選項3 and ……

in 等價於 欄位 =選項1 or 欄位=選項2 or 欄位 = 選項3 or ……

9. sql里邊,用in、not in 的時候,范圍是給定的,那麼還需要轉化成exists嗎

當然不會了,使用EXISTS或者NOT EXISTS只是為了表面IN和NOT IN裡面的全表檢索,因為IN裡面首先要執行完裡面的查詢內容,而EXISTS是遇到符合的就會停止檢索,所以說EXISTS的效率要高於IN,而如果裡面的內容是固定的,那麼本身裡面就沒有了全表檢索的語句,這樣本身效率就要快很多了,而完全沒有必要使用EXISTS,而且即使你想使用,這個語法也無從寫起了。

10. sql not in問題

NOT IN速度當然很慢,因為這樣會存在兩個全表檢索的情況,使用NOT EXISTS會快很多。
delete from t_b where exists (select 1 from t_b a where isnull(a.cost,0) > isnull(t_b.cost,0) and a.cost <> t_b.cost)
DELETE FROM CIDZ WHERE EXISTS (SELECT 1 FROM CIDZ A WHERE A.ID > CIDZ.ID)
---------這個刪除之後,會只剩下這個表中ID最大的一行,沒有別的連接條件了么?如果這么已刪除,表中只剩下一行了,我覺得你的意思是不是只留下每個地址分組後ID最大的一行啊?

熱點內容
jquery獲取上傳文件 發布:2025-05-14 20:27:57 瀏覽:42
雲web伺服器搭建 發布:2025-05-14 20:25:36 瀏覽:525
汽修汽配源碼 發布:2025-05-14 20:08:53 瀏覽:742
蜜蜂編程官網 發布:2025-05-14 19:59:28 瀏覽:57
優酷怎麼給視頻加密 發布:2025-05-14 19:31:34 瀏覽:635
夢三國2副本腳本 發布:2025-05-14 19:29:58 瀏覽:860
phpxmlhttp 發布:2025-05-14 19:29:58 瀏覽:434
Pua腳本 發布:2025-05-14 19:24:56 瀏覽:449
蘋果像素低為什麼比安卓好 發布:2025-05-14 19:13:23 瀏覽:461
安卓機微信怎麼設置紅包提醒 發布:2025-05-14 19:00:15 瀏覽:272