2012-09-03 41 views
1
SELECT ORG.DESCRIPTION, ORG.EXTERNALKEY 
FROM organization org 
WHERE org.ownerid = (SELECT id 
         FROM organization 
        WHERE externalkey = '970000') 
    OR org.externalkey = '970000' 
ORDER BY org.description; 

這是我的sql查詢。我用「ORDER BY org.description」。但這不完全是我的要求。我想在查詢結果中創建第一個(org.externalkey ='970000')。行將被排序(但org.externalkey ='970000'行將是第一個)。怎麼做?如何訂購結果但未使用sql查詢選定行?

回答

5

試試這個:

你只需要在順序添加CASE語句BY子句

ORDER BY 
CASE WHEN externalkey = '970000' THEN 0 else 1 END, 
      org.description 
0

試試這個:

SELECT ORG.DESCRIPTION, ORG.EXTERNALKEY 
FROM organization org 
WHERE org.ownerid = (SELECT id 
         FROM organization 
        WHERE externalkey = '970000') 
    OR org.externalkey = '970000' 
ORDER BY org.externalkey ,org.description;