Создание нового столбца извлеченной строки sql - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть таблица с именем summary со столбцами - Team Name и Result в SQL.

Примеры значений:

Team Name | Result
team one  | team one won by 10 points
Champions | Champions lost by 15 points
Patriots  | Match tied

Как сделатьЯ получаю только слова «выиграл», «потерян» или «связан» в отдельном столбце?Названия команд могут состоять из нескольких слов.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Вот один из методов:

select (case when s.result like '% won %' then 'won'
             when s.result like '% lost %' then 'lost'
             when s.result like '% tied%' then 'tied'
        end) as result
from t;

У этого могут быть некоторые проблемы, если в названии команды есть слова "победа", "проигрыш" или "ничья".Это кажется маловероятным, но вы можете защитить его с помощью:

select (case when s.result like team_name || ' ' || ' won %' then 'won'
             when s.result like team_name || ' ' || ' lost %' then 'lost'
             when s.result = team_name || ' tied' then 'tied'
        end) as result
from t;
0 голосов
/ 28 февраля 2019

SQL-код ниже (используется функция instr):

select s.*, case
  when instr(upper(s.result),'WON')>0 then 'W'  
  when instr(upper(s.result),'LOST')>0 then 'L'  
  when instr(upper(s.result),'TIED')>0 then 'T'  
  else '?' end as res
from summary s
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...