0

我已经尝试了一些东西,但我正在画一个空白。这是我的查询:

SELECT * 
    FROM Companies 
WHERE 
    Symbol LIKE 'ZY%' OR 
    Name LIKE '%ZY%' 
ORDER BY Symbol ASC
LIMIT 2;

基本上我希望“ZY”在匹配(HALO,Halozyme Therapeuti ...)之前匹配(ZNGA,Zynga Inc)。

显然,订单的原因是查询的这一部分:

ORDER BY Symbol

我在这里遗漏了一些明显的东西吗?

4

2 回答 2

5

您只需将其添加到 Order By 子句

SELECT * FROM Companies WHERE Symbol LIKE 'ZY%' OR Name LIKE '%ZY%' 
ORDER BY 
  (CASE WHEN Symbol LIKE 'ZY%' THEN 1
        WHEN Name LIKE '%ZY%' THEN 2
        END),
Symbol ASC;
于 2012-08-09T22:56:37.090 回答
0

不确定这是您要找的东西,但是...

ORDER BY CASE WHEN Symbol LIKE 'ZY%' THEN Symbol ELSE Name END ASC
于 2012-08-09T22:58:09.510 回答