|
|
1
1
下面是SQL Server的一个示例:
|
|
|
2
0
可以使用COALESCE将一列中的值转换为csv http://www.sqlteam.com/article/using-coalesce-to-build-comma-delimited-string 除非您不介意创建一个动态sql,它可以接受一个列名,然后在运行时相应地构建sql。 这仅适用于SQL Server。 |
|
|
3
0
这里有一种实现这种递归的方法(mssql) |
|
|
4
0
如果是Oracle,请检查stragg函数。
如果是MSSQL,请使用XML路径技巧
|
|
|
5
0
我想我要回答我自己的问题了,因为我真的找到了一种使用CURSOR的方法(我在思考中缺少的关键字…)
ALTER FUNCTION [dbo].[GET_NOM_MEDECIN_REVISEURS] (@NoAs810 int)
RETURNS NVARCHAR(1000)
AS
BEGIN
IF @NoAs810 = 0
RETURN ''
ELSE
BEGIN
DECLARE @NomsReviseurs NVARCHAR(1000)
DECLARE @IdReviseurs AS TABLE(IdReviseur int)
DECLARE @TempNomReviseur NVARCHAR(50)
SET @NomsReviseurs = ''
DECLARE CurReviseur CURSOR FOR
SELECT DISTINCT Nom FROM T_Ref_Reviseur R INNER JOIN T_Signature S ON R.IdReviseur = S.idReviseur WHERE NoAs810 = @NoAs810
OPEN CurReviseur
FETCH FROM CurReviseur INTO @TempNomReviseur
WHILE @@FETCH_STATUS = 0
BEGIN
SET @NomsReviseurs = @NomsReviseurs + @TempNomReviseur
FETCH NEXT FROM CurReviseur INTO @TempNomReviseur
IF @@FETCH_STATUS = 0
SET @NomsReviseurs = @NomsReviseurs + ' - '
END
CLOSE CurReviseur
RETURN @NomsReviseurs
END
RETURN ''
END
|