Sql server 2012 管道分隔输出

Sql server 2012 管道分隔输出,sql-server-2012,Sql Server 2012,我有下面的代码,我需要在管道分隔格式的格式。我尝试添加+“|”,但似乎我没有正确地添加,因此它会不断抛出错误。由于权限限制,它不能是存储过程。此外,我无法永久更改结果输出,因此无法使用“工具选项”菜单。请有人在下面的select语句中为我正确添加管道。非常感谢。我很困惑 SELECT DISTINCT Name, CAST(DOB AS DATE) AS DateOfBirth, Address1 AS AddressStreet1, Address2 AS AddressStreet2, C

我有下面的代码,我需要在管道分隔格式的格式。我尝试添加+“|”,但似乎我没有正确地添加,因此它会不断抛出错误。由于权限限制,它不能是存储过程。此外,我无法永久更改结果输出,因此无法使用“工具选项”菜单。请有人在下面的select语句中为我正确添加管道。非常感谢。我很困惑

SELECT  DISTINCT
Name,
CAST(DOB AS DATE) AS DateOfBirth,
Address1 AS AddressStreet1,
Address2 AS AddressStreet2,
City AS AddressCity,
State AS AddressState,
Postal AS AddressZip,
Sex AS Gender,
CAST(ActivityDateTime AS DATE) AS ActivityDate,
CASE
    WHEN ID IN ('R','A')
    THEN 'Y'
ELSE 'N'
END AS Allow

我真的不确定这是否是您正在寻找的,但有一种选择是将所有字段放入一个字段中,并在它们之间插入一个管道。
UNION ALL
允许您在第一行显示标题

SELECT 'Name|DateOfBirth|AddressStreet1|AddressStreet2|AddressCity|AddressState|AddressZip|Gender|ActivityDate|Allow' AS Data
UNION ALL
SELECT  DISTINCT
Name + '|' +
CAST(DOB AS DATE) + '|' +
Address1 + '|' +
Address2 + '|' +
City + '|' +
State + '|' +
Postal + '|' +
Sex + '|' +
CAST(ActivityDateTime AS DATE) + '|' +
CASE
    WHEN ID IN ('R','A')
    THEN 'Y'
ELSE 'N'
END
AS Data

我真的不确定这是否是您正在寻找的,但有一种选择是将所有字段放入一个字段中,并在它们之间插入一个管道。
UNION ALL
允许您在第一行显示标题

SELECT 'Name|DateOfBirth|AddressStreet1|AddressStreet2|AddressCity|AddressState|AddressZip|Gender|ActivityDate|Allow' AS Data
UNION ALL
SELECT  DISTINCT
Name + '|' +
CAST(DOB AS DATE) + '|' +
Address1 + '|' +
Address2 + '|' +
City + '|' +
State + '|' +
Postal + '|' +
Sex + '|' +
CAST(ActivityDateTime AS DATE) + '|' +
CASE
    WHEN ID IN ('R','A')
    THEN 'Y'
ELSE 'N'
END
AS Data

可以写输出吗?我本来打算创建一个输出,但JonB代码在下面解释了它。这正是我想说的。但是,我还需要有列名。谢谢。你能写一个输出吗?我本来打算创建一个输出,但是JonB代码在下面解释了它。这正是我想说的。但是,我还需要有列名。谢谢。嗨,是的,这正是我需要的。但是,我还需要列名。@sky\u limit,Hrmm。我不知道如何才能做到这一点,除非你有一个单独的声明为你显示它们。不过,这将是一个单独的查询。我正在尝试运行一个小脚本,并计划使用SQL Server代理每天运行它。我可以做CSV格式。但是,CSV格式的结果仍然很混乱。是所有内容都是自动完成的,还是所有内容都是粘贴的?如果您使用的是Excel,您可以使用其中的一个工具,通过管道将结果分隔成单独的单元格。您的答案有效,但我使用了CONCAT,效果更好。非常感谢。嗨,是的,这正是我需要的。但是,我还需要列名。@sky\u limit,Hrmm。我不知道如何才能做到这一点,除非你有一个单独的声明为你显示它们。不过,这将是一个单独的查询。我正在尝试运行一个小脚本,并计划使用SQL Server代理每天运行它。我可以做CSV格式。但是,CSV格式的结果仍然很混乱。是所有内容都是自动完成的,还是所有内容都是粘贴的?如果您使用的是Excel,您可以使用其中的一个工具,通过管道将结果分隔成单独的单元格。您的答案有效,但我使用了CONCAT,效果更好。谢谢。