Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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 server SQL Server:从表中的每一行中选择一个子字符串_Sql Server_Iteration - Fatal编程技术网

Sql server SQL Server:从表中的每一行中选择一个子字符串

Sql server SQL Server:从表中的每一行中选择一个子字符串,sql-server,iteration,Sql Server,Iteration,我在数据库中有一个不允许修改的表,该表是按以下方式设置的: ID Value Column x... 0 Apple: GDGolden Delicious, Date Picked: 5/5/2012, Color: Yellow 1 Apple: GSGranny Smith, Date Picked: 3/24/2010, Color: Green 2

我在数据库中有一个不允许修改的表,该表是按以下方式设置的:

ID  Value                                                                 Column x...
0   Apple: GDGolden Delicious, Date Picked: 5/5/2012, Color: Yellow
1   Apple: GSGranny Smith, Date Picked: 3/24/2010, Color: Green
2   Apple: RDRed Delicious, Date Picked: 1/15/2012, Color: Red
3   Random Data, Apple: BRBrayburn, Date Picked: 2/15/2012, Color: Mixed
ID是INT,Value是VarChar,数据之间用逗号分隔

对于表中的每一行,我需要拉出所列内容的子字符串,在本例中,每个水果品种的缩写,即GD、GS、RD、BR,并将其放入一个临时表中,该临时表包含该表中的所有其他列,以及子字符串,但不包含值列中的其他数据。表中的每个子字符串缩写正好是两个字符,但正如您在最后一行中看到的,它并不总是出现在列的开头

在我的阅读中,这听起来像是我必须使用光标来做这件事——但如果可能的话,我想避免这样做。有没有办法不用游标,或者通过case语句或子查询来实现这一点

最终结果如下所示:

ID  Value  Column x  Column y...
0   GD     
1   GS     
2   RD     
3   BR     

提前感谢。

如果您的记录上没有显示Apple:,您可以查找第一个::

SELECT ID, SUBSTRING(value, CHARINDEX('Apple: ',value)+7, 2)
    FROM YourTable

请参见

在事件中,您的记录没有显示Apple:,您可以查找第一个::


请参见

记录的结构是否始终为Apple:XX?为了简单起见,我们将说是。记录的结构是否始终为Apple:XX?为了简单起见,我们将说是。
select id, 
  substring(value, charindex(':', value, 1) + 2, 2) value
from yourtable