Home > Back-end >  How to specify the order of data displayed in BigQuery using the Union All function
How to specify the order of data displayed in BigQuery using the Union All function

Time:09-16

I am using the Union all function in Bigquery to display data from different tables. Here is an example of what I am doing

(Select ErrorCode AS `Code`, ErrorDate AS `Date`
From Errors
Where id = x
Order By ErrorDate ASC)

UNION ALL
(SELECT 'Error Code', 'Error Meaning')
UNION ALL
(SELECT '1001', 'Restart your PC')
UNION ALL
(SELECT '1002', 'Check the cables')

What I am trying to achieve here is a table that displays all the error codes an account has encountered, and then at the bottom a simple print of all the error codes we have in our system and their meaning.

Now, when I run this code in BigQuery, for some reason the error codes and their meanings are showing up first, then the codes the system encountered. Example of result I am getting:

Error Code | Error Meaning
1001       | Restart your PC
1002       | Check the Cables
------------------------------
1003       | 2022-09-12
1001       | 2218-09-04

I want the error codes the system encountered to show up first and then the meaning. Something like this

Code       | Date
1003       | 2022-09-12
1001       | 2218-09-04
------------------------------
Error Code | Error Meaning
1001       | Restart your PC
1002       | Check the Cables

How can I specify this order in BigQuery? Moving the code portions up and down does not help.

CodePudding user response:

Add another sorting column

(Select ErrorCode AS `Code`, ErrorDate AS `Date`,1 as _sort
From Errors
Where id = x
Order By ErrorDate ASC)

UNION ALL
(SELECT 'Error Code', 'Error Meaning',2)
UNION ALL
(SELECT '1001', 'Restart your PC',3)
UNION ALL
(SELECT '1002', 'Check the cables',4)
ORDER BY  _sort 

CodePudding user response:

Try changing the order in the select

Instead of:

Select ErrorCode AS `Code`, ErrorDate AS `Date`

try:

Select ErrorDate AS `Date`, ErrorCode AS `Code`
  • Related