Сортировка и обновление буквенно-цифрового столбца SQL

#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;