1
我正在遍歷產品數據集以查找SKU,其中產品名稱的前六個字符與sku @itemno相同,然後將它們連接成一個CSV字符串作爲數據集的一部分用於上傳到電子商務平臺。以下是相關操作:建議在SQL Server 2005中對CURSOR操作進行一些替代操作
DECLARE c1 CURSOR READ_ONLY
FOR
SELECT sku FROM tbl WHERE name LIKE (SELECT LEFT(name,6) FROM tbl WHERE sku = @itemno) + '%'
OPEN c1
FETCH NEXT FROM c1
INTO @c1
WHILE @@FETCH_STATUS = 0
BEGIN
SET @associated = @associated + @c1 + ','
FETCH NEXT FROM c1
INTO @c1
END
正如您可以想象的,考慮到15,000+條記錄的數據集大小,這是非常緩慢的。當然,有一種更優雅的方式來使用PIVOT或其他東西來做到這一點?
+1。 COALESCE也不錯.... – 2010-12-16 07:44:22
也給你+1。對於單個值的返回,stuff/xml方法似乎有點多。我確實使用它來分組,雖然X-) – 2010-12-16 07:46:06
這個問題在這裏回答:http://stackoverflow.com/questions/455423/how-to-turn-one-column-of-a-table-into-a-csv -string式-SQL服務器不-使用-A – Drew 2010-12-16 08:36:36