将视图中的数据聚合为UDF以在select语句中使用

时间:2010-02-10 01:09:20

标签: sql sql-server sql-server-2005

我有一个现有视图,它以下列格式返回数据。

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。

2 个答案:

答案 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

**