繁体   English   中英

按WHERE条款对DB2 SQL结果进行排序

[英]Sort DB2 SQL results by WHERE CLAUSE

有没有一种方法可以向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子句最相关。

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

我认为此版本可能会更快,更易读:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM