'Adding a single static column to SQL query results

I have a pretty big query (no pun intended) written out in BigQuery that returns about 5 columns. I simply want to append an extra column to it that is not joined to any other table and just returns a single word in every row. As if to be an ID for the entire table.



Solution 1:[1]

Just wrap original select and add new constant or add it into original query. The answer might be more precise if you put your query and expected result to your question.

select q.*, 'JOHN' as new_column
from ( <your_big_query> ) q

previous (now unrelated) answer follows

You can use row_number window function:

select q.*, row_number() over (order by null) as id
from ( <your_big_query> ) q

It returns values 1,2, etc. Depending on how complicated your query is, the row_number could be inlined directly into your query.

Solution 2:[2]

If all you want is one static column, just add an extra static column at the end of your existing select columns list.

select {ALL_COLUMNS_YOU_ARE_JOINING_COMPUTING_ETC}, 'something' as your_new_static_col  from {YOUR_QUERY}

This static column does not need to be a string, it can be an int or some other type.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Pratik Patil