Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询以分隔句子中的单词_Sql_Sql Server - Fatal编程技术网

Sql 查询以分隔句子中的单词

Sql 查询以分隔句子中的单词,sql,sql-server,Sql,Sql Server,我需要一个查询来将单词从表中的句子中分离出来 比如说 在我的表格中有一列(位置) 位置包含值,如 INDIA | Tamilnadu |chennai India |andhra |hyderabad 印度|泰米尔纳德邦|钦奈 印度|安得拉邦|海得拉巴 因此,我需要一个查询,将这三个内容放入不同的列中,并用分隔符分隔。数据库并不以其解析字符串的能力而闻名。有些数据库比其他数据库具有更好的功能。例如,在MySQL中,您可以执行以下操作: select substring_index(place,

我需要一个查询来将单词从表中的句子中分离出来

比如说 在我的表格中有一列(位置)

位置包含值,如

INDIA | Tamilnadu |chennai India |andhra |hyderabad 印度|泰米尔纳德邦|钦奈 印度|安得拉邦|海得拉巴
因此,我需要一个查询,将这三个内容放入不同的列中,并用分隔符分隔。数据库并不以其解析字符串的能力而闻名。有些数据库比其他数据库具有更好的功能。例如,在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解析该数据时遇到的问题是什么