查看 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”
我需要一个字符串(一行,一列)来表示列值的所有值。
我该怎么做?任何帮助将不胜感激?
答案 0 :(得分: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
答案 1 :(得分:1)
你去吧
SELECT ','+Value from MyTable for xml path('')
OR
declare @test varchar(100) select @test = coalesce(@test+',','')+Value from MyTable select @test
答案 2 :(得分:1)
对于View使用Milen提出的解决方案,创建标量值函数,然后在视图中使用“dbo.GetResults(ParameterHere)作为结果”