在Teradata中搜索子字符串的最简单方法

时间:2014-10-08 00:23:35

标签: substring teradata

我想修改这样的表:

ID       List            FLG1   FLG2 

1     000, 111, 123         0      0
2     000, 241, 123         0      0
3     888, 187, 111         0      0
4     424, 000, 123         0      0
5     384, 234, 111         0      0

如果List包含子字符串'000',则将FLG1设置为1 如果List包含子串'111',则将FLG2设置为1

因此,在模仿之后,它应该是这样的:

ID     |   List     |     FLG1 |  FLG2 

1     000, 111, 123         1      1
2     000, 241, 123         1      0
3     888, 187, 111         0      1
4     424, 000, 123         1      0
5     384, 234, 111         0      1

请帮助我。谢谢。

1 个答案:

答案 0 :(得分:1)

你可以利用POSITION,但我更喜欢LIKE:

CASE WHEN list LIKE '%000%' THEN 1 ELSE 0 end

假设数据只是一个示例,并且列表中的项目可能有不同的长度,当有888, 180007, 111之类的列表时,他会导致误报,所以你可能会做得更好

CASE WHEN ', ' || list || ',' LIKE '%, 000,%' THEN 1 ELSE 0 END

同样,如果逗号后面的空格丢失,这可能会失败。