Skip to content
Advertisement

How can I combine two columns and sort the values alphabetically?

I’m new to programming languages and am trying to get the customers with the longest and shortest names, combine them in a single column, and sort them by longest then shortest names.

Here’s what I have. How can I query to get my desired result in MySQL?

SELECT max(length(customer_id)) AS longest, min(length(customer_id)) AS lowest 
FROM orders
SELECT concat(longest,lowest) AS diff
FROM orders
ORDER BY diff desc

Table is orders

customer_id longest lowest
John Nathaniel John
Michael
Nathaniel

Expected results are:

diff
Nathaniel
John

Advertisement

Answer

It sounds like you want a UNION operator. Something like:

SELECT max(length(customer_id)) as CUSTOMER_ID
FROM orders
UNION
SELECT min(length(customer_id))
FROM orders
ORDER BY CHAR_LENGTH(CUSTOMER_ID)

This should find your max and min entries and union them together into a single column named CUSTOMER_ID. Then you just sort them by character length.

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement