我遇到一个问题,其中验证代码与其他数据一起存储在我的表中。不幸的是,描述存储在一个我无法访问的表中。我确实知道值
示例
12、14和22-在excel中可以找到它们的说明。我无权创建用于存储数据的表,因此我每天都需要运行它们作为报告工作。
问题:如何编写一个查询,可以使用excel中的值创建一个虚拟表(内联?即时运行?)并联接到我的表中,以便结果看起来像这样
注意:
任何想法。我尝试搜寻。我认为我没有使用正确的术语,因此找不到结果。
答案 0 :(得分:1)
您可以通过加入一个SELECT
FROM dual
每个代码描述对UNION ALL
并使用SELECT t1.date,
t1.task,
t1.code,
x.description
FROM table1 t1
LEFT JOIN (SELECT 12 code,
'Missing Work' description
FROM dual
UNION ALL
SELECT 14 code,
'Absent' description
FROM dual
...) x
ON x.code = t1.code;
将其结果组合为一组的子查询来实现。
excel
答案 1 :(得分:1)
如您所知,这些代码和说明很简单,就是创建一个CTE。在下面的示例中,它称为table1
。此示例中的另一个CTE代表您的“真实” SQL> with excel (code, description) as
2 (select 12, 'Missing Work' from dual union all
3 select 14, 'Absent' from dual union all
4 select 22, 'Incomplete' from dual
5 ),
6 table1 (c_date, task, code) as
7 (select date '2019-05-30', 'Homework', 12 from dual union all
8 select date '2019-05-31', 'Labwork' , 14 from dual union all
9 select date '2019-05-30', 'Other' , 22 from dual
10 )
11 select t.c_date, t.task, t.code, e.description
12 from table1 t join excel e on e.code = t.code;
C_DATE TASK CODE DESCRIPTION
---------- -------- ---------- ------------
05/30/2019 Homework 12 Missing Work
05/31/2019 Labwork 14 Absent
05/30/2019 Other 22 Incomplete
SQL>
(我可以在数据库中创建它,但是CTE足以显示要做什么)。
<xsl:template match="Subject">
<Subject_xref><xsl:value-of select="@xref"/></Subject_xref>
</xsl:template>
答案 2 :(得分:1)
您可以使用称为通用表表达式(CTE)的东西
WITH Code_lookup AS (
SELECT 12 Code, 'Missing Work' Description FROM DUAL UNION ALL
SELECT 14, 'Absent' FROM DUAL UNION ALL
SELECT 22, 'Incomplete' FROM DUAL)
SELECT <your columns list>
FROM <your table>
JOIN Code_lookup USING (Code)
答案 3 :(得分:0)
也许使用带有联合的公共表表达式:
Dim MyOptions As New Dictionary(Of String, String) From {{"one", "ONE"}, {"two", "TWO"}, {"three", "THREE"}}