2013-08-05 2 views
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) 

enter image description here

Теперь я хочу, чтобы все эти три столбца в одном столбце

ответ

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.

EDIT:

Вы можете выбрать первый ненулевой ряд, используя coalesce():

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

Но если два (или более) столбцов есть комментарии, то вы будете держать только первым не -НУЛЛ один.

+0

Мне нужно что-то вроде союза –

+0

Это работает благодаря Gordon –

+0

Гордон есть ли какой-либо другой метод здесь из-за конкатенации мы получаем, что строки сливаются. Есть ли способ, которым я могу получить кумуляры с объединением строк? –

Смежные вопросы