我在数据库中有一个表(我不允许修改),它是按以下方式设置的:
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
is anINT
和Value
is a VarChar
,数据之间用逗号分隔。
对于表中的每一行,我需要提取列出的子字符串,在这种情况下,每个水果品种的缩写(即 GD、GS、RD、BR)并将其放入一个临时表中,其中包含所有该表中的其他列以及子字符串,但该Value
列中没有其他数据。表中的每个子字符串缩写正好是两个字符,尽管正如您在最后一行看到的,它并不总是出现在列的开头。
在我的阅读中,听起来我必须使用光标来执行此操作——但如果可能的话,我想避免这种情况。有没有办法在不使用游标的情况下通过 case 语句或子查询来实现这一点?
最终结果将如下所示:
ID Value Column x Column y...
0 GD
1 GS
2 RD
3 BR
提前致谢。