Как изменить имя заголовков столбцов в инструкции ОБЪЕДИНЕНИЯ

#sql #union #column-alias

#sql #объединение #столбец-псевдоним

Вопрос:

Заголовки столбцов в запросе ОБЪЕДИНЕНИЯ называются как оператор выбора первого запроса, как я могу изменить заголовки столбцов на Entities и Errors ?

 The Query is:

SELECT DISTINCT '1001account' AS [1001account]
    ,[1001account] AS '1001account'
FROM XXX
WHERE StresstestaccountEnabled LIKE '%Yes%'
    AND BalancesheetAmount <> 0
    AND PATINDEX('%[^0-9]%', [1001account]) > 0
    OR [1001account] IS NULL

UNION

SELECT DISTINCT '[MAX(InterestRate)]' AS InterestType
    ,MAX(InterestRate) AS 'MAXInterestRate'
FROM XXX
WHERE BalanceSheetAmount <> 0
    AND StressTestAccountEnabled LIKE 'Yes'

UNION

SELECT DISTINCT '[MIN(InterestRate)]' AS InterestType
    ,MIN(InterestRate) AS 'MINInterestRate'
FROM XXX
WHERE BalanceSheetAmount <> 0
    AND StressTestAccountEnabled LIKE 'Yes'

UNION

SELECT DISTINCT '[MAX(SwapRate)]' AS [SwapRate]
    ,MAX(SwapRate) AS 'MAXSwapRate'
FROM XXX
WHERE BalanceSheetAmount <> 0
    AND StressTestAccountEnabled LIKE 'Yes'

UNION

SELECT DISTINCT '[MIN(SwapRate)]' AS [SwapRate]
    ,MIN(SwapRate) AS 'MINSwapRate'
FROM XXX
WHERE BalanceSheetAmount <> 0
    AND StressTestAccountEnabled LIKE 'Yes'

UNION

SELECT DISTINCT '[MAX([Margin])]' AS [Margin]
    ,MAX([Margin]) AS 'MAXS[Margin]'
FROM XXX
WHERE BalanceSheetAmount <> 0
    AND StressTestAccountEnabled LIKE 'Yes'

UNION

SELECT DISTINCT '[MIN([Margin])]' AS [Margin]
    ,MIN([Margin]) AS 'MIN[Margin]'
FROM XXX
WHERE BalanceSheetAmount <> 0
    AND StressTestAccountEnabled LIKE 'Yes'

             
  

ВЫВОД:

 **1001account**         **1001account**
[MAX([Margin])]         170.8372200000
[MAX(InterestRate)]         172.7691400000
[MAX(SwapRate)]         70.8750000000
[MIN([Margin])]         -70.6084500000
[MIN(InterestRate)]         -19.4163150000
[MIN(SwapRate)]         -1.0392500000
1001account                 NULL
5028account                 NULL
  

Как вы можете видеть, заголовки столбцов относятся к инструкции select первого запроса. Как я могу изменить имя этих заголовков при использовании UNION инструкции?

Комментарии:

1. Поместите псевдонимы столбцов в первую ВЫБОРКУ.

2. вы уже написали, что должно быть сделано.

3. Вероятно, есть лучшие способы написать этот запрос.

Ответ №1:

Измените псевдоним в первом select

 SELECT DISTINCT '1001account' AS Entities
    ,[1001account] AS Errors
FROM XXX
WHERE StresstestaccountEnabled LIKE '%Yes%'
    AND BalancesheetAmount <> 0
    AND PATINDEX('%[^0-9]%', [1001account]) > 0
    OR [1001account] IS NULL