创建提取的字符串sql的新列

时间:2019-02-28 11:31:16

标签: mysql sql

我有一个名为 summary 的表,其中有SQL中的列{{11}}和Team Name

样本值:

Result

如何在单独的栏中仅获得“赢”,“输”或“绑”两个字?团队名称可能由多个词组成。

谢谢。

2 个答案:

答案 0 :(得分:3)

这是一种方法:

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;

答案 1 :(得分:1)

下面的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