Sql 如何在一列中显示更多值

Sql 如何在一列中显示更多值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想在此模式下创建一个返回数据的查询: ID_Accesso | Id_Prestazioni 1 1&10&20 2 1&6&60 表格如下: CREATE TABLE [dbo].[AccessiXAttivita]( [IDAccesso] [int] NOT NULL, [ID] [int] NOT NULL, [IDAttivita] [int] NOT NULL, [Nume

我想在此模式下创建一个返回数据的查询:

ID_Accesso | Id_Prestazioni
1            1&10&20
2            1&6&60
表格如下:

CREATE TABLE [dbo].[AccessiXAttivita](
    [IDAccesso] [int] NOT NULL,
    [ID] [int] NOT NULL,
    [IDAttivita] [int] NOT NULL,
    [NumeroPrestazioni] [int] NULL,
    [CodiceAttivita] [nvarchar](50) NULL)

CREATE TABLE [dbo].[T_EXP_CodiciAttivita](
    [ASL] [nvarchar](50) NOT NULL,
    [CodiceNostro] [nvarchar](50) NOT NULL,
    [CodiceASL] [nvarchar](50) NOT NULL
) 
我已经建立了这个查询,但是这个查询没有显示我想要的结果

SELECT CodiceNostro,IDAccesso
    FROM AA_V_T_EXP_CodiciAttivita C JOIN AA_V_AccessiXAttivita A
    ON C.CodiceNostro = A.IDAttivita

我如何构建一个查询来显示每个IDacesso,一个包含所有CodiceNostro的字段?

您可以通过以下方式完成:

DECLARE @Tbl TABLE(ID_Accesso INT, Id_Prestazioni INT)
INSERT INTO @Tbl VALUES (1,1),(1,10),(1,20),(2,1),(2,6),(2,60)

SELECT  ID_Accesso
       ,STUFF((SELECT '&' + CAST(Id_Prestazioni AS VARCHAR(10)) [text()]
         FROM @Tbl 
         WHERE ID_Accesso = t.ID_Accesso
         FOR XML PATH(''), TYPE)
        .value('.','NVARCHAR(MAX)'),1,1,' ') Id_Prestazioni
FROM @Tbl t
GROUP BY ID_Accesso

输出

ID_Accesso   Id_Prestazioni
1            1&10&20
2            1&6&60

演示

您可以在

进行测试。您可以尝试以下方法:

选择字段1作为字段1,字段2 | |'和| |字段3 | |'和| |字段4作为字段234
来自田野

结果将是:

FIELD1 | FIELD234

F1 | F2&F3&F4

提供了目前如何在这些表中存储值的示例数据。您编写的代码不起作用,因为我不知道我拥有的字段x的数量