2012-07-25 70 views
0

查詢是轉換SQL到Sybase方言

Select id from TableA 
where typ_cd="NT" 
and id not in 
(select id from TableA where typ_cd="BB") 

我需要找到那些編號的,其type_cd =「NT」,並比較這些ID與同桌的這是不存在的type_cd =「BB」。我很困惑爲什麼上面的查詢沒有返回正確的值。

編輯: - 我引用同一個表,也有對列ID沒有空值

請讓我知道我可以做到在SQL Server同樣的結果,這樣我可以嘗試寫在Sybase等效查詢

TableA 

id typ_cd 
1 NT 
1 BB 
3 NT 
4 NT 
4 BB 

我需要的ID = 1作爲result因爲ID = 1是本作typ_cd = NT而不是typ_cd = BB 但目前上述查詢即時得到在Sybase空

+0

這是你得到什麼或你想要的樣品?你能否確定兩者都存在問題。你也可以告訴我們兩個數據庫上表的數據和結構是否相同。有沒有空位等? – 2012-07-25 06:04:09

+0

@PreetSangha:我的錯誤。上面顯示的查詢是正確的,甚至是urs。對於所有具有type_cd = NT的行,只有type_cd = BB的行纔有匹配的行,但反之亦然。 – praveen 2012-07-25 06:26:52

+0

基於數據只有3應該來,而不是1. – 2012-07-25 14:58:33

回答

0

替換帶雙引號的雙引號。

Select id from TableA 
where typ_cd='NT' 
and id not in 
(select id from TableA where typ_cd='BB') 
+0

我已經發布的查詢是Sybase。它適用於雙引號和單引號,但不幸的是它沒有返回我在sybase中的正確行 – praveen 2012-07-25 05:53:51