我是SQL新手,我正在尝试使用其他列的值创建新列。
我正在使用这样的东西。
Select
a.idclientecrm,
(case
when a.titulo like '%Mensual' then 'Mensual'
when a.titulo like '%Trimestral' then 'Trimestral'
when a.titulo like '%Semestral' then 'Semestral'
when a.titulo like '%Anual' then 'Anual'
else null
end) as Periodo_Producto
from tareas a
当我在 a.titulo 中找到 Mensual 这个词时,我需要在新专栏中使用“Mensual”这个词,依此类推每个不同的时间段( trimestral , semestral 和 anual )。
“喜欢”部分似乎不起作用,我也尝试使用包含,但我也无法使其正常工作。
希望这是可以理解的。
答案 0 :(得分:3)
比较字符串末尾(以及开头)需要一个'%'符号来进行比较以检查字符串中的任何位置 - 此时它只检查字符串结束带有时间段的单词。尝试:
Select
a.idclientecrm,
(case
when a.titulo like '%Mensual%' then 'Mensual'
when a.titulo like '%Trimestral%' then 'Trimestral'
when a.titulo like '%Semestral%' then 'Semestral'
when a.titulo like '%Anual%' then 'Anual'
end) as Periodo_Producto
from tareas a
(此外,else null
是不必要的 - 默认情况下,case
在没有匹配条件的情况下返回null。)
答案 1 :(得分:2)
将%
放在String
Select
a.idclientecrm,
(case
when a.titulo like '%Mensual%' then 'Mensual'
when a.titulo like '%Trimestral%' then 'Trimestral'
when a.titulo like '%Semestral%' then 'Semestral'
when a.titulo like '%Anual%' then 'Anual'
else null
end) as Periodo_Producto
from tareas a
答案 2 :(得分:0)
两端使用%。
试试这个:
Select
a.idclientecrm,
(case
when a.titulo like '%Mensual%' then 'Mensual'
when a.titulo like '%Trimestral%' then 'Trimestral'
when a.titulo like '%Semestral%' then 'Semestral'
when a.titulo like '%Anual%' then 'Anual'
else null
end) as Periodo_Producto
from tareas a
这是fiddle。
希望这可以根据您的需要使用。谢谢!