Sql 查询以分隔句子中的单词
我需要一个查询来将单词从表中的句子中分离出来 比如说 在我的表格中有一列(位置) 位置包含值,如 INDIA | Tamilnadu |chennai India |andhra |hyderabad 印度|泰米尔纳德邦|钦奈 印度|安得拉邦|海得拉巴Sql 查询以分隔句子中的单词,sql,sql-server,Sql,Sql Server,我需要一个查询来将单词从表中的句子中分离出来 比如说 在我的表格中有一列(位置) 位置包含值,如 INDIA | Tamilnadu |chennai India |andhra |hyderabad 印度|泰米尔纳德邦|钦奈 印度|安得拉邦|海得拉巴 因此,我需要一个查询,将这三个内容放入不同的列中,并用分隔符分隔。数据库并不以其解析字符串的能力而闻名。有些数据库比其他数据库具有更好的功能。例如,在MySQL中,您可以执行以下操作: select substring_index(place,
因此,我需要一个查询,将这三个内容放入不同的列中,并用分隔符分隔。数据库并不以其解析字符串的能力而闻名。有些数据库比其他数据库具有更好的功能。例如,在MySQL中,您可以执行以下操作:
select substring_index(place, '|', 1) as place1,
substring_index(substring_index(place, '|', 2), '|', -1) as place2,
substring_index(substring_index(place, '|', 3), '|', -1) as place3
但是,其他数据库不支持
子字符串_index()
,尽管有些数据库具有类似的功能。您也可以使用此方法实现相同的功能
declare @String1 varchar(200);
set @String1 = 'www|eee|rrr';
select PARSENAME(REPLACE(@String1,'|','.'),3) 'First_Place'
select PARSENAME(REPLACE(@String1,'|','.'),2) 'Second_Place'
select PARSENAME(REPLACE(@String1,'|','.'),1) 'Third_Place'
你在使用什么数据库?所有的地名都有相同的结构,有三个元素吗?谢谢你的回复。但是我使用的是Sql Server,所以它不支持,我也会一直使用相同的结构。但是我使用的是Sql Server,所以它不支持,我也会一直使用相同的结构。唉,这个问题在这个答案发布后很久就被标记为sql server。谢谢你Hardik。它正在工作。但是我需要更新一个有10000行的表。wt s d最佳方式。我可以使用游标吗?@是的,你可以使用游标,但CTE将是最好的option@KarthickK . . . 问题是如何提取中间值。如果您不知道如何将此函数应用于
update
语句,您应该接受此答案并问另一个问题。请告诉我是否存在解析数据的方法,如(Technology | Microsoft Technologies |.NET)@kark解析该数据时遇到的问题是什么