【发布时间】:2018-03-29 10:02:30
【问题描述】:
我在 Oracle 中有两个要合并的 sql 查询。第一个查询从表中返回域描述,第二个查询将仅返回输入参数 (COST_CENTER) 中存在的域描述。
第一个查询:
SELECT distinct condition as condition_code, value as condition_literal
FROM CULVERT_INSPECT
LEFT OUTER JOIN
(SELECT EXTRACTVALUE (CodedValues.COLUMN_VALUE, 'CodedValue/Code')
AS Code,
EXTRACTVALUE (CodedValues.COLUMN_VALUE, 'CodedValue/Name')
AS VALUE
FROM GDB_ITEMS_VW items
INNER JOIN GDB_ITEMTYPES itemtypes
ON items.TYPE = itemtypes.UUID,
TABLE (
XMLSEQUENCE (
XMLType (Definition).EXTRACT (
'/GPCodedValueDomain2/CodedValues/CodedValue')))
CodedValues
WHERE itemtypes.Name = 'Coded Value Domain'
AND items.Name = 'OVERALL_CONDITION') coded_values
on CULVERT_INSPECT.condition = coded_values.code
ORDER BY CONDITION_CODE
第二个查询:
SELECT distinct CULVERT_INSPECT.CONDITION
FROM CULVERTS
INNER JOIN CULVERT_INSPECT ON (CULVERTS.GLOBALID_1 =
CULVERTGID)
WHERE COST_CENTER = '551807'
第一个查询的输出:
CONDITION_CODE CONDITION_LITERAL
0 Excellent - Like New
1 Good - Some Wear, Structurally Sound
2 Poor - Deteriorated, Consider For Repair
3 Very Poor - Serious Deterioration
4 Inaccessible
【问题讨论】:
-
CULVERTGID是来自CULVERT_INSPECT的列 - 对于给定的CONDITION,它在CULVERT_INSPECT中是唯一的吗? -
@KaushikNayak 是的,
CULVERTGID是来自CULVERT_INSPECT的列。这是一个唯一的 ID,但不是给定的CONDITION。 -
再确认一下,如果您在第一个查询的 select 中包含
CULVERTGID,您会得到相同的行数吗? -
@KaushikNayak 不一定。有时
COST_CENTER不会包含所有CONDITION_CODES。不过我们可以试试。CULVERTGID用于匹配来自GLOBALID_1的相关值在CULVERTS中。 -
COST_CENTER是CULVERT_INSPECT中的一列?
标签: sql oracle inner-join outer-join