将所有列值合并为一列作为CSV

时间:2015-05-21 08:17:50

标签: sql sql-server clrstoredprocedure

如何将行的所有值合并到 MS SQL Server 中的单个字段中,

假设我的表格式为::

area_name || city || state || postal_code || country || address

输出

area||city||state||postal_code||country||

area,city,state,postal_code,country

如何合并area_name,city,state,postal_code和country的值,以CSV格式创建一个地址。

我的代码

CREATE PROC [dbo].[p_insert_address]
    @ID             INT = 0,
    @area_name      VARCHAR(20)
    @city           VARCHAR(20),
    @state          VARCHAR(20),
    @postal_code    VARCHAR(20),
    @country        VARCHAR(20) 
AS
    BEGIN
        SET NOCOUNT ON;     

            INSERT INTO address (@area_name, city, state, postal_code, country)
            VALUES (@area_name, @city, @state, @postal_code, @country);     

        SET NOCOUNT OFF;

    END

1 个答案:

答案 0 :(得分:0)

这样可以在表格中插入数据:

CREATE PROC [dbo].[p_insert_address]
    @ID             INT = 0,
    @area_name      VARCHAR(20)
    @city           VARCHAR(20),
    @state          VARCHAR(20),
    @postal_code    VARCHAR(20),
    @country        VARCHAR(20) 
AS
    BEGIN
        SET NOCOUNT ON;     

            INSERT INTO address (area_name, city, state, postal_code, country,csv)
            VALUES (@area_name, @city, @state, @postal_code, @country, @area_name+','+@city+','+@state+','+@postal_code+','+@country);     

        SET NOCOUNT OFF;

    END

否则:

SELECT area_name, city, state, postal_code, country,area_name+','+city+','+state+','+postal_code+','+country
FROM address