#sql #sql-server
#sql #sql-сервер
Вопрос:
У меня есть алфавитно-цифровой столбец, я его упорядочил, и все в порядке. Моя проблема в том, что результат буквенно-цифрового столбца выглядит следующим образом, когда в запросе отсутствуют некоторые классы select
:
02 - buyers
03 - sellers
05 - customers
07 - xxxx
12 - yyyyyy
Как я могу изменить порядок этого в правильном порядке:
01 - buyers
02 - sellers
03 - customers
04 - xxxx
05 - yyyyyy
Спасибо.
Комментарии:
1.
row_number()
?2. Я не понимаю, о чем вы спрашиваете, порядок тот же, его число отличается. Это вопрос о нумерации, а не о фактической сортировке? Откуда берется число?
3. @HoneyBadger да, это именно то, что я хочу, число берется из столбца кода, который я сопоставляю с этим столбцом
4. Не беспокойтесь. Сохраните текущие значения. Изменение нумерации элементов может привести к настоящему беспорядку.
5. @DaleK как я могу это сделать с помощью row_number()!
Ответ №1:
используйте временную таблицу с полем автоматического идентификатора.
create table tmpNumTable(id INT NOT NULL AUTO_INCREMENT, name String)
insert into tmpNumTable(name) select name from clientType
select * from tmpNumTable
Синтаксис может отличаться в зависимости от языка.
https://dev.mysql.com/doc/refman/8.0/en/create-table.html
https://dev.mysql.com/doc/refman/8.0/en/insert-select.html
Ответ №2:
Это то, что вы хотите?
select row_number() over (order by col1), col2
from t
order by col1;