Как преобразовать список символов в столбцы SQL

у меня есть стол

    A   B   C
1   13  yes Mon, Thu, Sun
2   15  no  Thu, Tue, Fri
3   17  yes Sat, Mon, Wen

Как я могу преобразовать предыдущую строку столбца таблицы C «Пн, Чт, Вс» в:

    A   B   Sun Mon Tue Wen Thu Fri Sat
1   13  yes 1   1   0   0   1   0   0
2   15  no  0   0   1   0   1   1   0
3   17  yes 0   1   0   1   0   0   1
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам придется повторить одно и то же выражение, чтобы проверить значение для каждого столбца,

select A, B, 
  case when C like '%Mon%' then 1 else 0 end Mon,
  case when C like '%Tue%' then 1 else 0 end Tue,
  etc

полный запрос, с:

  1. исправлено написание среды (Wed),
  2. если ваш стол называется t
SELECT 
    A, 
    B, 
    CASE WHEN INSTR(C, 'Sun') > 0 THEN 1 ELSE 0 END Sun,
    CASE WHEN INSTR(C, 'Mon') > 0 THEN 1 ELSE 0 END Mon,
    CASE WHEN INSTR(C, 'Tue') > 0 THEN 1 ELSE 0 END Tue,
    CASE WHEN INSTR(C, 'Wed') > 0 THEN 1 ELSE 0 END Wed,
    CASE WHEN INSTR(C, 'Thu') > 0 THEN 1 ELSE 0 END Thu,
    CASE WHEN INSTR(C, 'Fri') > 0 THEN 1 ELSE 0 END Fri,
    CASE WHEN INSTR(C, 'Sat') > 0 THEN 1 ELSE 0 END Sat
FROM t

возвращение:

A   B   Sun Mon Tue Wed Thu Fri Sat
13  yes 1   1   0   0   1   0   0
15  no  0   0   1   0   1   1   0
17  yes 0   1   0   0   0   0   1

Кто-то изменил мою таблицу, а затем изменил ее обратно (теперь вы можете посмотреть на правильную таблицу). Я попробовал ваш код с изменениями, и ваш код тоже работает. Спасибо!

Jānis 23.04.2023 20:33

Другие вопросы по теме