У меня есть запрос, например...
SELECT a.order_number, b.state
from tableone a
tabletwo b
WHERE
1=1
AND a.id = b.id
AND a.order_number = '12345';
Это выводит:
order_number state
12345 CA
12345 AZ
12345 NY
Я смотрю вместо того, чтобы возвращать объединенную строку, поэтому я могу сохранить этот результат в одной строке.
order_number state
12345 CA,AZ,NY
Итак, я построил это:
SELECT
a.order_number,
LISTAGG(b.state, ',') WITHIN GROUP (ORDER BY a.order_number) AS states
from tableone a
tabletwo b
WHERE
1=1
AND a.id = b.id
AND a.order_number = '12345'
GROUP BY a.order_number;
Теперь - мой вопрос - как мне присвоить значения этим состояниям? Их всего 3 — CA, AZ и NY, где CA = 1, AZ = 2 и NY = 3. Я либо должен выполнить эту логику, чтобы синхронизироваться с другим приложением, которое использует эти числовые значения для представления состояний здесь, в SQL или в другой системе на бэкенде, и я бы предпочел сделать это здесь, если это возможно...
Я бы хотел, чтобы мой вывод выглядел так:
order_number state
12345 1,2,3