2013-11-26 107 views
0

查看MyView的合并多行到一行

............. 
. Id | Value. 
............. 
. 1 | A . 
. 2 | B . 
. 3 | C . 
. 4 | D . 
............. 

我为以下查询:

“选择从dbo.MyView其中id> 1”

房地产结果:

............. 
. Id | Value. 
............. 
. 2 | B . 
. 3 | C . 
. 4 | D . 
............. 

我希望的或所需的结果:

“B,C,d”


我需要一个字符串(一行,一列),其merege的所有值列值。

我该怎么做?任何帮助将不胜感激?

回答

2

如何标量值功能:

Create FUNCTION [dbo].[GetResults] 
(
    @ID int 
) 
RETURNS varchar(200) 
AS 
BEGIN 
    DECLARE @Result varchar(200) 

    SELECT @Result = COALESCE(@Result + ', ','') + Value 
    From 
     ( 
      SELECT Value 
      FROM  MyTable 
      WHERE  (ID > @ID) 

     ) UniqueValues 

    RETURN @Result 

END 
+0

非常感谢,它似乎正是我们需要!我们怎么能从嵌套查询调用?我们可以做到这一点例如(SELECT .... SELECT(。HERE CALL IT ..)) –

+0

只需使用'select ... select(....,dbo.GetResults(ParameterHere)as Results,....)' – Milen

+0

谢谢我会测试它,然后标记你的答案:-) –

1

在这里你去

SELECT ','+Value from MyTable for xml path('')

OR

declare @test varchar(100) 
select @test = coalesce(@test+',','')+Value from MyTable 
select @test
+0

亲爱的它必须在SQL-Server中完成,而不是在代码中查询必须修改感谢帮助。 –

+0

没有得到你。你不想用sql来实现它? – DarkKnight

+0

不,我想用SQL这样的东西做这样的链接:http://stackoverflow.com/questions/8005846/sql-server-combining-multiple-rows-into-one-row –

1

对于查看使用由米伦提出的解决方案,创造了Scalar Valued Function,然后在View中使用“dbo.GetResult” s(ParameterHere)作为结果“

+0

非常感谢我们需要+1的东西,但我会推销里程碑答案! –