2013-11-26 169 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的東西,但我會推銷里程碑答案! –