我得到一个表类型变量这样从表类型变量
color
-------------
Black
Blue<br/>PMS 285C
Green<br/>PMS 360
Red<br/>PMS 199
删除列的一些角色我要让他们像
color
-------------
Black, Blue, Green, Red
,但我有一个非常困难的时期删除“& lt ..”的东西。 我也跟着这样的回答:Is there a way to loop through a table variable in TSQL without using a cursor? 要创建一个临时表中循环,并删除字符,但仍然无法正常工作
DECLARE @result int, @i int = 0, @colors varchar(800);
DECLARE @results table(color varchar(40));
INSERT INTO @results SELECT color FROM...
DECLARE @temp table(Id INT, color varchar(40));
INSERT INTO @temp SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS Id, color FROM @results
WHILE (SELECT Count(*) FROM @temp WHERE color like '%<%') > 0
BEGIN
SELECT Top 1 @i = Id FROM @temp WHERE color like '%<%'
UPDATE @temp Set color = (case when color like '%<%'
then left(color, charindex('<', color) - 1)
else color
end) Where Id = @i
Delete @temp Where Id = @i
END
我仍然得到
color
------------------------------------------------------------------------------
Black, Blue<br/>PMS 285C, Green<br/>PMS 360, Red<br/>PMS 199
谁能帮帮我好吗?或者提出一些建议。
感谢
请解释它是如何工作的 – Horaciux