powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Лучший аналог замены значений по словарю в SQL это JOIN?
3 сообщений из 3, страница 1 из 1
Лучший аналог замены значений по словарю в SQL это JOIN?
    #40122980
Carn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу говорю - SQL у меня не основная область знаний с очень поверхностными представлениями.

Кейс, из-за которого сюда пришёл, совершенно обычный - в одной из таблиц каким-то текстовым категориальным значениям приделан соответствующий id (по которому их ещё и удобно ранжировать), а в другой - не приделан. Сначала родился монстр:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    SELECT
        CASE
            WHEN performance_score = "90-day meets"             THEN 0
            WHEN performance_score = "PIP"                      THEN 1
            WHEN performance_score = "Needs Improvement"        THEN 2
            WHEN performance_score = "Fully Meets"              THEN 3
            WHEN performance_score = "Exceeds"                  THEN 4
            WHEN performance_score = "Exceptional"              THEN 5
            WHEN performance_score = "N/A- too early to review" THEN 9
            ELSE NULL
        END AS perf_scoreid,
        performance_score 
    FROM production_staff


Потом стало понятно, что можно сделать лучше:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    SELECT 
        perf_scoreid_dict.perf_scoreid, 
        production_staff.performance_score
    FROM  production_staff
    LEFT JOIN (
        SELECT DISTINCT 
            perf_scoreid, 
            performance_score
        FROM hr_dataset
        ORDER BY perf_scoreid) AS perf_scoreid_dict
    ON production_staff.performance_score = perf_scoreid_dict.performance_score


Датасет HR Data
...
Рейтинг: 0 / 0
Лучший аналог замены значений по словарю в SQL это JOIN?
    #40123018
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Carn
Датасет HR Data
По этой ссылке есть какие-то таблицы, но как они соотносятся с таблицами из запросов в корневом сообщении - непонятно. Понятно только, что в архитектуре БД каша (без масла).
"Замена значений" подразумевает UPDATE, но и в этом случае JOIN предпочтительнее.
...
Рейтинг: 0 / 0
Лучший аналог замены значений по словарю в SQL это JOIN?
    #40123063
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для абсолютно статического списка можно использовать ENUM.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Лучший аналог замены значений по словарю в SQL это JOIN?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]