#sql #sql-server-2008
#sql #sql-server-2008
Вопрос:
Я получил эту таблицу SQL, которую я планирую использовать в SQL-запросе:
| Code_1 | Name_1 | Code_2 | Name_2 | Code_3 | Name_3 | Code_4 | Name_4 |
-------------------------------------------------------------------------
| A01 | Alice | B01 | Bernie | C01 | Charle | D01 | Dean |
| A01 | Alice | B01 | Bernie | C01 | Charle | D02 | Donny |
| A01 | Alice | B01 | Bernie | C02 | Claire | E01 | Ellie |
'and so on
В моем запросе я хочу:
- Объедините код и имя в строку.
- Отобразите код и объединенную строку Code Name.
- Добавьте фиктивную строку, где
Code_4
иName_4
пусто.
Вот так:
| Code_1 | Name_1 | Code_2 | Name_2 | Code_3 | Name_3 | Code_4 | Name_4 |
-------------------------------------------------------------------------------------------------
| A01 | A01 - Alice | B01 | B01 - Bernie | C01 | C01 - Charle | | |
| A01 | A01 - Alice | B01 | B01 - Bernie | C01 | C01 - Charle | D01 | D01 - Dean |
| A01 | A01 - Alice | B01 | B01 - Bernie | C01 | C01 - Charle | D02 | D02 - Donny |
| A01 | A01 - Alice | B01 | B01 - Bernie | C02 | C02 - Claire | | |
| A01 | A01 - Alice | B01 | B01 - Bernie | C02 | C02 - Claire | E01 | E01 - Ellie |
'and so on
Запрос, который у меня есть до сих пор:
select distinct [Code_1], [Code_1] ' - ' [Name_1] as [Name_1],
[Code_2], [Code_2] ' - ' [Name_2] as [Name_2],
[Code_3], [Code_3] ' - ' [Name_3] as [Name_3],
[Code_4], [Code_4] ' - ' [Name_4] as [Name_4] from [SQLIOT].[dbo].[NAMES]
Я все еще не могу понять, как поместить пустую фиктивную строку для Code_4
amp; Name_4
.
Ответ №1:
Кажется, вы хотите union all
:
select [Code_1], [Code_1] ' - ' [Name_1] as [Name_1],
[Code_2], [Code_2] ' - ' [Name_2] as [Name_2],
[Code_3], [Code_3] ' - ' [Name_3] as [Name_3],
[Code_4], [Code_4] ' - ' [Name_4] as [Name_4]
from [SQLIOT].[dbo].[NAMES]
union all
select distinct [Code_1], [Code_1] ' - ' [Name_1] as [Name_1],
[Code_2], [Code_2] ' - ' [Name_2] as [Name_2],
[Code_3], [Code_3] ' - ' [Name_3] as [Name_3],
NULL as [Code_4], NULL as [Name_4]
Исходя из ваших выборочных данных, вам не нужны select distinct
общие данные, только для части с обнуленными столбцами.