2012-02-20 103 views
-1

的間隔名單我有兩個表MSSQL - HOWTO擺脫標識

Created_Labels

enter image description here

  • IFlabel_ID_from = label_ID_to(這意味着它已經只有一個標籤創建),列label_number是創建標籤的編號。

  • IF(創建多個標籤)label_ID_from <> label_ID_to,在柱label_numberNULL並在接下來的兩列是創建與ID從表波紋管標籤的間隔。

標籤(現有的標貼的列表):

enter image description here

我怎樣才能獲得的完整列表,創建label_numbers(取得編號爲105,110,111,112 ..標籤120,200,201,202 ... 210,394,554)?

enter image description here

+0

從你的例子標籤100001只出現在兩個表中的id在= 105,所以應該有足夠的只是選擇整個標籤表...還是我不明白的問題 – mslliviu 2012-02-20 08:27:33

+0

,我需要選擇標識105,110 ,111..120,200,201,202..210,394,554, – gaffcz 2012-02-20 08:32:11

回答

1
SELECT 
     L.ID 
    , L.label_number 
FROM 
     Labels L 
    JOIN 
     Created_Labels CL 
    ON 
     L.ID BETWEEN CL.label_ID_from 
       AND CL.label_ID_to 
+0

非常感謝你,那正是我需要的! – gaffcz 2012-02-20 08:54:09

0

你試過這個嗎?

SELECT distinct label_number 
FROM created_labeles c; 

OR

SELEC distinct l.label_number 
FROM created_labeles c, 
     labels l 
WHERE c.label_number = l.label_numbers(+) 
    AND c.label_number is null 

上述第二查詢是左外連接在Oracle SQL當量。