請教有點複雜的SQL 指令 |
尚未結案
|
leee02
一般會員 發表:17 回覆:12 積分:5 註冊:2002-10-09 發送簡訊給我 |
我有一個TABLE 包含4個欄位(A、B、C、D)
想要將A、B、C 有相同值並且D為NULL 的RECORD 選出來
(如*號所示) (***為所要選取的Record) A B C D
------------------------------
02 08 0001
02 08 0002
02 08 0003
02 08 0004
02 08 0005
02 08 0006
02 08 0007
02 08 0008
02 08 0009
02 08 0010
02 08 0011
02 08 0012
02 08 0013 ***
02 08 0013 01 *
02 08 0013 02 *
02 08 0014
02 08 0015
02 08 0016
02 08 0017 [b][/b
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
alice
初階會員 發表:41 回覆:49 積分:28 註冊:2002-04-30 發送簡訊給我 |
|
leee02
一般會員 發表:17 回覆:12 積分:5 註冊:2002-10-09 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
alice
初階會員 發表:41 回覆:49 積分:28 註冊:2002-04-30 發送簡訊給我 |
引言:
---------------------------------------------------------------------
試試看
SELECT A,B,C,D FROM TEST T WHERE D IS NULL AND (SELECT COUNT(*) FROM TEST WHERE A=T.A AND B=T.B AND C=T.C )>1
---------------------------------------------------------------------
我這可用在Oracle,FireBird的資料庫,
若是Paradox, sorry ,我不知道Paradon的語法!!
|
cmj
高階會員 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
引言:引言: 試試看 SELECT A,B,C,D FROM TEST T WHERE D IS NULL AND (SELECT COUNT(*) FROM TEST WHERE A=T.A AND B=T.B AND C=T.C )>1針對PARADOX以上語法沒錯 我用的資料庫是Paradox 的Database ,上面的語法好像有點問題,不能WORK。 1.若是你用Desktop來執行Query,指到Table所在目錄要設Alias,然後Query要選取此Alias 2.若是在程式中,可能是Query元件設定有問題 |
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
leee02
一般會員 發表:17 回覆:12 積分:5 註冊:2002-10-09 發送簡訊給我 |
引言:引言:=================================== 我試過上面的語法是OK的,但我的資料庫內有好幾萬筆資料,執行起來要很久。引言: 試試看 SELECT A,B,C,D FROM TEST T WHERE D IS NULL AND (SELECT COUNT(*) FROM TEST WHERE A=T.A AND B=T.B AND C=T.C )>1針對PARADOX以上語法沒錯 我用的資料庫是Paradox 的Database ,上面的語法好像有點問題,不能WORK。 1.若是你用Desktop來執行Query,指到Table所在目錄要設Alias,然後Query要選取此Alias 2.若是在程式中,可能是Query元件設定有問題 |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
cmj
高階會員 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
|
leee02
一般會員 發表:17 回覆:12 積分:5 註冊:2002-10-09 發送簡訊給我 |
|
leee02
一般會員 發表:17 回覆:12 積分:5 註冊:2002-10-09 發送簡訊給我 |
|
cmj
高階會員 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
假設 :
1. 若有重覆資料時只得一筆的D是NULL,其他重覆資料的 D 一定不是 NULL
2. 沒重覆資料的 D 一定是 NULL
3. A,B,C,D 是固定長度字串 (若是數字也可以但要稍作更改)
你應可以用
select A,B,C,D from test
where A B C in (Select distinct A B C from test where D <> '')
and D = ''; 我以你第一個 POST 附上的資料再加上些重覆的資料測試是可行的。 補充:
1. 若文字欄位但不固定長度可用 A "-" B "-" C ("-"可換成ABC欄位一定不會出理的字或附號
2. 若數字欄位可以 (A * 1000000) (B * 10000) C 等等 發表人 - Justmade 於 2003/04/04 13:44:24
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |