2010-11-24 12 views
0

Gibt es eine Möglichkeit, Where-Klauseln eine Sortierreihenfolge hinzuzufügen?DB2 SQL-Ergebnisse nach WHERE-Klausel sortieren

Zum Beispiel

SELECT * 
FROM media 
WHERE media_title LIKE 'query' 
OR media_title LIKE 'query string' 
OR media_title LIKE 'query string to search for' 

Ich mag Relevanz das, was der Endbenutzer-Eingang in ein Suchfeld suchen, mit dem letzten Abschnitt, wo die wichtigsten zu sein.

Antwort

3
SELECT * 
FROM media 
WHERE media_title LIKE 'query' 
    OR media_title LIKE 'query string' 
    OR media_title LIKE 'query string to search for' 
ORDER BY case 
    when media_title LIKE 'query' then 1 
    when media_title LIKE 'query string' then 2 
    when media_title LIKE 'query string to search for' then 3 
end 
0

Ich denke, diese Version könnte schneller sein und noch lesbar:

SELECT * 
FROM media 
WHERE media_title IN ('query', 
         'query string', 
         'query string to search for') 
ORDER BY case 
    when media_title = 'query'      then 1 
    when media_title = 'query string'    then 2 
    when media_title = 'query string to search for' then 3 
    end