通过WHERE CLAUSE对DB2 SQL结果进行排序

时间:2010-11-24 20:26:50

标签: sql db2

有没有办法在where子句中添加排序顺序?

例如

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

我想通过相关性搜索最终用户输入到搜索框中,最后一个where子句是最相关的。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我认为这个版本可以更快,更具可读性:

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
相关问题