我正在使用SQL Server 2008.我有一个“课程”表,其中有一列名为“课程”。我在表格“课程”中插入“课程”并获得一个字符串例如“数学英语物理”。SQL拆分字符串
如何分割一个字符串以便我可以访问每个课程?如何将字符串拆分为一个空格并访问索引1中应返回“英语”的项目?
我正在使用SQL Server 2008.我有一个“课程”表,其中有一列名为“课程”。我在表格“课程”中插入“课程”并获得一个字符串例如“数学英语物理”。SQL拆分字符串
如何分割一个字符串以便我可以访问每个课程?如何将字符串拆分为一个空格并访问索引1中应返回“英语”的项目?
如下创建用户定义函数(UDF):
Declare @course varchar(200) = 'Math English Physics'
Declare @individual varchar(20) = null
WHILE LEN(@course) > 0
BEGIN
IF PATINDEX('% %',@course) > 0
BEGIN
SET @individual = SUBSTRING(@course, 0, PATINDEX('% %',@course))
SELECT @individual
SET @course = SUBSTRING(@course, LEN(@individual + ' ') + 1,
LEN(@course))
END
ELSE
BEGIN
SET @individual = @course
SET @course = NULL
SELECT @individual
END
END
我希望这可以解决您的问题。
我相信你应该重组你的数据库并对其进行规范化。
使得所有varchar操作都不利于性能。一个一个地选择它们也是一个糟糕的主意。你可以使用eather递归sql或者xml分割更加有效 –
ya我同意你@ t-clausen.dk – Pawan
'@products'是什么?自定义代码一点.. –
先得到结果然后拆分 –
这是遗留系统吗?你可以改为规范化你的数据库?显然你有某种东西和过程之间的1:n关系,如果可能的话,你应该相应地设计分贝。 –