csv 用分号和双引号连接表值

at0kjp5o  于 2023-01-15  发布在  其他
关注(0)|答案(2)|浏览(105)

我需要提供一个文本文件来连接表中的所有结果,但是分隔符需要是分号,值需要用双引号括起来。我还需要返回列标题。我如何仅使用TSQL来实现这一点呢?

下面的示例(注意空值和NULL的情况)

DROP TABLE IF EXISTS #Temp

CREATE TABLE #Temp
(
    Name           VARCHAR(8) NULL,
    Age            VARCHAR(8) NULL,
    City           VARCHAR(8) NULL
)

INSERT INTO #Temp (Name, Age, City)
VALUES ('Mike','', NULL ) -- Age is blank and City is NULL

SELECT CONCAT_WS('";"'
      ,'Name'
      ,'Age'
      ,'City')
UNION all
SELECT CONCAT_WS('";"'
      ,Name
      ,Age
      ,City) 
FROM #Temp

-- Results needs to be....
/*
    "Name";"Age";"City"
    "Mike";"";""
*/
dba5bblo

dba5bblo1#

要匹配预期输出结果:

SELECT '"' + CONCAT_WS('";"'
  ,'Name'
  ,'Age'
  ,'City') +'"'
UNION all
SELECT '"' +CONCAT_WS('";"'
  ,Name
  ,ISNULL(Age,'')
  ,ISNULL(City,'')) +'"'
FROM #Temp
8nuwlpux

8nuwlpux2#

ISNULL是你的朋友。

SELECT CONCAT_WS('";"'
      ,'Name'
      ,'Age'
      ,'City')
UNION all
SELECT CONCAT_WS('";"'
      ,ISNULL(Name,'')
      ,ISNULL(Age,'')
      ,ISNULL(City,'')) 
FROM #Temp

相关问题