Skip to content
Advertisement

Set column value of a view based on which table I’m selecting from

I’m creating a view from 2 tables. I need to create a brand new column in the view; this column must be set to 0 when I’m selecting from the first table, 1 from the second one:

Table A:
+---------+---------+
|column A |column B |
+---------+---------+
|  Boston |   USA   |
+---------+---------+
| Chicago |   USA   |
+---------+---------+
|Las Vegas|   USA   |
+---------+---------+

Table B:
+---------+---------+
|column A |column B |
+---------+---------+
|  Paris  |  Europe |
+---------+---------+
|  Madrid |  Europe |
+---------+---------+
|  London |  Europe |
+---------+---------+

Resulting View:
+---------+---------+---------+
|column A |column B | column C|
+---------+---------+---------+
|  Boston |   USA   |    0    |
+---------+---------+---------+
| Chicago |   USA   |    0    |
+---------+---------+---------+
|Las Vegas|   USA   |    0    |
+---------+---------+---------+
|  Paris  |  Europe |    1    |
+---------+---------+---------+
|  Madrid |  Europe |    1    |
+---------+---------+---------+
|  London |  Europe |    1    |
+---------+---------+---------+

Advertisement

Answer

Just use a union with a computed column:

SELECT columnA, columnB, 0 AS columnC FROM TableA
UNION ALL
SELECT columnA, columnB, 1 FROM TableB
ORDER BY columnC;
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement