全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:493
推到 Plurk!
推到 Facebook!

Sql Server 的問題

尚未結案
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-16 19:21:39 IP:61.64.xxx.xxx 未訂閱
SQL SERVER 7.0 TableA : 欄位有A1,A2.. TableB : B1,B2 SELECT A.*,B.* FROM TableA A,TableB B WHERE A.A1 *= B.B1 AND B.B1 is null 請問一下以上command 我想取B資料不存在的資料出來 可是只要一下 B.B1 is null 資料就變的怪怪的 請問是語法錯誤嗎?? 謝謝
Gide
一般會員


發表:7
回覆:10
積分:3
註冊:2003-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-16 20:36:44 IP:61.218.xxx.xxx 未訂閱
可試看看 SELECT A.*,B.* FROM TableA A,TableB B WHERE A.A1 *= B.B1 AND (B.B1 is null or B.B1 = '') '' = 空字串
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-16 20:39:46 IP:218.160.xxx.xxx 未訂閱
No-where兄您好: 請問你是要取TableB.B1這個欄位為NULL的資料出來嗎?? 或是我會錯意了, 有點看不太懂

SELECT *
FROM TableA 
WHERE A1 not in (Select B1 from TableB)
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-20 08:40:59 IP:203.69.xxx.xxx 未訂閱
謝謝Gide的答案,but ... 結過是一樣的 Miles的方式是可以的 可是兩個table 是這樣join的 只是為何sql server 這樣的left join方式為何行不通??
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-20 21:42:56 IP:218.160.xxx.xxx 未訂閱
Hi No_where 您好: 小弟的一點心得, 若有錯誤還請各位先進指正    SELECT A.*,B.* FROM TableA A,TableB B WHERE A.A1 *= B.B1 AND B.B1 is null 這句指令在解析器中他還是會當成正式的條件 舉個例子 1. Select * from TableA a Left join TableB b on a.A1 = b.B1 and b.B1 is NULL 2. Select * from Tablea a Left join TableB b on a.A1 = b.B1 where b.B1 is NULL 這兩種寫法的結果就會不一樣, 第一種會列出TableA所有的資料, 第二種則還需要TableB.B1是NULL才行, 因為解析器會將它當成一個獨立的條件, 你的寫法便是第二種 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-22 21:29:45 IP:61.64.xxx.xxx 未訂閱
謝謝 Miles的解答
系統時間:2024-06-02 21:45:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!