我是sql新手,边学习边学习。如何在配置单元上的sql中找到两个冒号之间的文本?例如
Text 1: hello:ok:old:yes:age: Text 2: hello:no:old:yes:hour: Text 3: hi:fine:old:yes:minute:
我想找到总是在后面的文字:old:yes:“直到下一个:
Output 1 = age Output 2 = hour Output 3= minute
w46czmvw1#
这里有两个选项
hive> select regexp_extract('hello:ok:old:yes:age:','([^:]+):$',1); OK age
hive> select split('hello:ok:old:yes:age:',':')[4]; OK age
rqmkfv5c2#
也可以使用patindex从该位置开始,直到下一个charindex:
qv7cva1a3#
试试这个应该是工作
select SUBSTRING('hello:ok:old:yes:age:', CHARINDEX('old:yes','hello:ok:old:yes:age:')+8, LEN('hello:ok:old:yes:age:') - CHARINDEX('old:yes','hello:ok:old:yes:age:')-8);
3条答案
按热度按时间w46czmvw1#
这里有两个选项
rqmkfv5c2#
也可以使用patindex从该位置开始,直到下一个charindex:
qv7cva1a3#
试试这个
应该是工作