我有一个名为 summary
的表,其中有SQL中的列{{11}}和Team Name
。
样本值:
Result
如何在单独的栏中仅获得“赢”,“输”或“绑”两个字?团队名称可能由多个词组成。
谢谢。
答案 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