我有一个奇怪的Case构建MySql查询:
在这里。
但我不得在ORDER BY中使用CONCAT。有没有办法构建查询
RAW SQL:
SELECT CONCAT(first_name, last_name)
FROM users
ORDER BY CONCAT(first_name, last_name)
案例:first_name可以为空
示例
First Name Last Name A B B C D
现在我需要SOrt订单
AB B CD
答案 0 :(得分:1)
试试这个:
SELECT full_name FROM (
SELECT CONCAT(first_name, last_name) AS full_name FROM users
) AS tmp ORDER BY full_name
答案 1 :(得分:0)
如果空白为NULL
,请使用COALESCE
ORDER BY CONCAT(COALESCE(first_name,''), COALESCE(last_name,''))
答案 2 :(得分:0)
这个怎么样:
order by (case when FirstName is NULL or FirstName = '' then LastName else FirstName end),
LastName
不太重视,您可以使用concat_ws()
。 。 。就像concat()
但不同。
答案 3 :(得分:0)
在MySQL中,您可以按列别名排序:
SELECT CONCAT(first_name, last_name) AS full_name
FROM users ORDER BY full_name
SQLFiddle here。