У меня есть столбец int, который содержит значения не более 20. Я хочу выбрать соответствующую ему заглавную букву алфавита:

1 = A
2 = B
3 = C
...

Меня не волнует, что происходит после Z, потому что столбец не содержит больших значений. Есть ли простой способ сделать это с помощью SQL-запроса, чтобы преобразовать его в однобайтовый символ?

1
BadHorsie 3 Фев 2022 в 20:04

2 ответа

Лучший ответ

Добавьте 64 к вашему целому числу, и вы получите значение ASCII нужной буквы.

mysql> select CHAR(1+64);
+------------+
| CHAR(1+64) |
+------------+
| A          |
+------------+

Прочитайте https://dev.mysql.com/doc /refman/8.0/en/string-functions.html#function_char

2
Bill Karwin 3 Фев 2022 в 20:08
Спасибо, я бы сделал это на других языках программирования. Не удалось найти эту функцию, я искал CHR().
 – 
BadHorsie
3 Фев 2022 в 20:11

Другая альтернатива, характерная для MySQL, с использованием elt

select elt(col,'A','B','C','D','E','F',...);

Демо

0
Phil Coulson 4 Фев 2022 в 01:14