我在一个表中有一个评论列,它有多个字符串格式如下,
示例字符串:
Reviews_Column_Data [INPUT]
'05012:000000: :0:00000000|00647:000000: :0:00000000|00283:000000: :0:00000000|'
'05012:000000: :0:00000000|00025:000000: :0:00000000|00647:000000: :0:00000000|'
'05012:000000: :0:00000000|02095:000000: :0:00000000|00647:000000: :0:00000000|'
'05012:000000: :0:00000000|00647:000000: :0:00000000|'
'05081:023931:DF:9:20230111|00604:023931:XX:9:20230111|02470:023931:XX:9:20230111|00655:023931:XX:9:20230111|00464:023931:XX:9:20230111|02130:023931:XX:9:20230111|'
'05081:023931:DF:9:20230131|02229:023931:XX:9:20230131|02130:023931:XX:9:20230131|00692:023931:XX:9:20230131|02170:023931:XX:9:20230131|05084:000000: :0:00000000|00647:000000: :0:00000000| '
我需要提取应用程序表中的审查在下面的格式...
Application_Review_Column_Data [OUTPUT]
'05012,00647,00283'
'05012,00025,00647'
'05012,02095,00647'
'05012,00647',
'05081,00604,02470,00655,00464,02130'
'05081,02229,02130,00692,02170,05084,00647'
查找评论的关键点是,字符串的起点和符号的每个终点"|"和立即":"
我已经尝试了下面的代码,但它没有工作
DROP TABLE IF EXISTS #Temp_Tbl
Create table #Temp_Tbl (Comments varchar(500));
INSERT INTO #Temp_Tbl
VALUES('05012:000000: :0:00000000|00647:000000: :0:00000000|00283:000000: :0:00000000|'),
('05012:000000: :0:00000000|00025:000000: :0:00000000|00647:000000: :0:00000000|'),
('05012:000000: :0:00000000|02095:000000: :0:00000000|00647:000000: :0:00000000|'),
('05081:023931:DF:9:20230131|02229:023931:XX:9:20230131|02130:023931:XX:9:20230131|00692:023931:XX:9:20230131|02170:023931:XX:9:20230131|')
1条答案
按热度按时间eivnm1vs1#
正如我所评论的,使用
string_split
在|
上进行拆分,然后使用charindex()和left()提取所需的字符串,最后使用string_agg()
将其连接回来