我怎么可以删除的查询,从中选择发言?

0

的问题

我需要帮助消除子查询的原始选择的发言。 是这个可能吗? 我需要这个最终移动的查询,这样Denodo/VQL,不允许查询在选择发言(但不允许CTE/与和查询在从哪里).

select case when material in (
    select material
    from schema.material_table
    where old_material like '%55AD%'
  ) then 'Found'
  else 'Not Found'
end
from schema.material_table;
1

最好的答案

2

我可以看到几个选项。 最直接的翻译似乎是:

SELECT CASE
         WHEN m2.MATERIAL IS NOT NULL THEN 'Found'
         ELSE 'Not Found'
       END AS IZZIT_THERE
  FROM SCHEMA.MATERIAL_TABLE m2
  RIGHT OUTER JOIN SCHEMA.MATERIAL_TABLE m1
    ON m1.MATERIAL = m2.MATERIAL
  WHERE m1.OLD_MATERIAL LIKE '%55AD%'

但使用 RIGHT OUTER JOIN 可能不熟悉。 切换到更多的熟悉 LEFT OUTER JOIN 我们需要扭转的位置表的查询,并改变条件如何被介绍:

SELECT CASE
         WHEN m1.MATERIAL IS NOT NULL THEN 'Found'
         ELSE 'Not Found'
       END AS IZZIT_THERE
  FROM SCHEMA.MATERIAL_TABLE m1
  LEFT OUTER JOIN SCHEMA.MATERIAL_TABLE m2
    ON m2.MATERIAL = m1.MATERIAL
  WHERE m1.OLD_MATERIAL LIKE '%55AD%'

我不停的别名相同的,所以你可以看看他们如何到处移动的查询。 在这两种查询 m1 是主要的表格,也就是说,它是一个 必须 提供数据,同时 m2 是的次级或"任选的"表-它可能有或可能没有数据与主要的。

就个人而言,我愿意加入通过查询因为我找到他们更容易理解,但情况因人而异。

2021-11-24 02:01:18

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................