【发布时间】:2011-02-20 04:36:53
【问题描述】:
我在 SQL for Oracle 10g 中有一个家庭作业,我必须将联合应用于两个不同的选择语句,以返回两列。我需要 vendor_state 下每个单元格的值来指示 CA 和另一个状态中的每个其他值返回“外部 CA”,以指示它们在其他地方。
我应用了联合并为 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
这给了我我需要的确切答案,但我不知道为什么第二个 select 语句中的别名会以这种方式表现......我的教科书中没有给出解释,我读过的任何内容都没有表明该列别名可以像这样完成。但是,通过切换列名和别名值,我替换了返回的值而不是列名本身......我不是在抱怨结果,但如果我知道我是如何做到的,这将有所帮助。
【问题讨论】:
标签: sql oracle oracle10g union alias