как установить уникальное имя каждого отдельного значения столбца в SQL

0

У меня есть таблица testTble со столбцом testVal который содержит повторяющиеся значения. Я могу найти каждое уникальное значение столбца, используя DISTINCT(testVal). Но я хочу установить конкретное имя каждого уникального значения столбца.

Подобно:

Я запустил запрос в моей базе данных и нашел эти отличные значения.

SELECT DISTINCT(testVal) AS web FROM 'testTble'

Выход:

web
169.254.15.169
10.0.0.91
192.168.80.47
10

Теперь я хочу установить уникальное имя этих значений, например:

169.254.15.169 как web21 10.0.0.91 как web22

Итак, как я могу установить имя, как это?

  • 1
    Что делать, если у вас заканчиваются буквы AZ?
  • 0
    Отредактируйте вопрос, добавьте пример данных и желаемый результат будет полезным.
Показать ещё 2 комментария
Теги:

1 ответ

0

В MySQL 8+ вы можете использовать row_number():

select test_val, row_number() over (order by test_val)
from t
group by test_val;

В более ранних версиях вы можете использовать переменные:

select test_val, (@rn := @rn + 1) as seqnum
from t cross join
     (select @rn := 0) params
group by test_val;

В обоих случаях "имя" - это числовое значение, но это похоже на то, что вы хотите сделать.

  • 0
    Спасибо, Второй устанавливает числовое значение каждого отдельного значения. Но как я могу установить имя типа string ? Я имею в виду AB1 или AB2
  • 0
    Замените (rn: = rn + 1) на 'AB' + cast ((rn: = rn + 1) как varchar) (пришлось убирать ats, поскольку комментарии им не нравятся!)
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню