我有一个现有视图,它以下列格式返回数据。
option_name product_id
XSMALL (2-6) 17854
SMALL (6-10) 17854
MEDIUM (10-14) 17854
LARGE 18232
如何根据将product_id发送到函数的格式,以逗号分隔的字段返回此数据?
XSMALL(2-6),小(6-10),中(10-14)
我正在使用MS SQL 2k5。
答案 0 :(得分:1)
您可以在SQL Server 2005及更高版本中使用FOR XML PATH
:
CREATE FUNCTION dbo.GetProductNames(@ProductID int)
RETURNS TABLE
AS
SELECT
Options = SUBSTRING((
SELECT ', ' + o2.option_name
FROM options AS o2
WHERE o2.product_id = o1.product_id
FOR XML PATH('')), 3, 1000)
FROM options AS o1
WHERE o1.product_id = @ProductID
答案 1 :(得分:0)
**
声明@option_name varchar(1000) 选择@option_name = isnull(@ option_name +',','')+ tablename select中的option_name @option_name
**