1

我有三个不同的表,我需要三个表中的同一列,并且我需要将所有值放入一个输出列中而不会丢失任何记录。以下是现有查询建议我进行一些修改

    SELECT 
    dbo.dealer_program_details.o_comments,
    dbo.Self_Am.o_comments,
    dbo.Coop_Payment_Detail.o_comments
    FROM
    dbo.dealer_program_details
    INNER JOIN
    dbo.Self_Am
    ON
    (
        dbo.dealer_program_details.DEALER_CODE = dbo.Self_Am.Dealer_Code)
    INNER JOIN
    dbo.Coop_Payment_Detail
   ON
    (
        dbo.dealer_program_details.DEALER_CODE = dbo.Coop_Payment_Detail.Dealer_Code)

在此处输入图像描述

现在我希望将这三列全部合并为一列

4

1 回答 1

2

如果您希望它们在一列中,则将它们连接在一起:

SELECT (dbo.dealer_program_details.o_comments + dbo.Self_Am.o_comments +
        dbo.Coop_Payment_Detail.o_comments
       ) as OneColumn
FROM dbo.dealer_program_details INNER JOIN
     dbo.Self_Am
     ON dbo.dealer_program_details.DEALER_CODE = dbo.Self_Am.Dealer_Code INNER JOIN
     dbo.Coop_Payment_Detail
     ONdbo.dealer_program_details.DEALER_CODE = dbo.Coop_Payment_Detail.Dealer_Code;

在 Sybase 中,您不必担心NULL值,因为它们被视为空字符串。在 SQL Server 中,NULL如果任何列值为NULL.

编辑:

您可以使用以下命令选择第一个非 NULL 行coalesce()

SELECT coalesce(dbo.dealer_program_details.o_comments, dbo.Self_Am.o_comments,
        dbo.Coop_Payment_Detail.o_comments
       ) as OneColumn

但是,如果两个(或更多)列有注释,那么您将只保留第一个非 NULL 列。

于 2013-08-05T21:47:20.653 回答