我在Oracle for Oracle 10g中有一个家庭作业,我必须将union应用于两个不同的select语句,以返回两列.我需要在vendor_state下的每个单元格的值来指示CA和另一个状态中的每个其他值返回"Outside CA",以表明它们在其他地方.
我应用了union并生成了两列和CA的列表,但列出了许多其他状态ID,我找不到有关如何更改查询本身中的实际值的说明.最后,我偶然发现了答案,但我无法解释为什么会这样.代码如下:
SELECT vendor_name,
vendor_state
FROM vendors
WHERE vendor_state IN 'CA'
UNION
SELECT vendor_name,
'Outside CA' AS vendor_state
FROM vendors
WHERE vendor_state NOT IN 'CA'
ORDER BY vendor_name
Run Code Online (Sandbox Code Playgroud)
这给了我我需要的确切答案,但我不知道为什么第二个select语句中的别名可以这样表现......我的教科书中没有给出任何解释,我读过的任何内容都没有表明列别名可以是像这样做.但是,通过切换列名和别名值,我已经替换了返回的值而不是列名本身...我不是在抱怨结果,但如果我知道我是怎么做的话会有所帮助.