表P
字段ID,Name
表T
字段ID,pID,Value,pID对应P.ID
数据
1,1,'A'
1,2,'B'
1,3,'C'
...
2,1,'X'
2,3,'Y'如何返回
1,A,B,C...
2,X,null,Y...?
P记录数据个数可变.

解决方案 »

  1.   

    参看邹建的使用用户定义函数,配合SELECT处理完成字符串合并处理的示例
    --处理的数据
    CREATE TABLE tb(col1 varchar(10),col2 int)
    INSERT tb SELECT 'a',1
    UNION ALL SELECT 'a',2
    UNION ALL SELECT 'b',1
    UNION ALL SELECT 'b',2
    UNION ALL SELECT 'b',3
    GO--合并处理函数
    CREATE FUNCTION dbo.f_str(@col1 varchar(10))
    RETURNS varchar(100)
    AS
    BEGIN
    DECLARE @re varchar(100)
    SET @re=''
    SELECT @re=@re+','+CAST(col2 as varchar)
    FROM tb
    WHERE col1=@col1
    RETURN(STUFF(@re,1,1,''))
    END
    GO--调用函数
    SELECT col1,col2=dbo.f_str(col1) FROM tb GROUP BY col1
    --删除测试
    DROP TABLE tb
    DROP FUNCTION f_str
    /*--结果
    col1       col2
    ---------- -----------
    a          1,2
    b          1,2,3
    --*/
    GO
      

  2.   

    LZ可要改动一点才行呀.多加了个Null的处理,你的P记录个数不确定.以哪个为主呢?
    ID=1 or ID=2 or ID=3 ?