如何在SELECT之外使用like运算符

时间:2016-03-19 21:01:40

标签: oracle

我有以下查询可以正常工作。

SELECT A.*
FROM 
(
    SELECT 'ABC','DEF' FROM DUMMY
    UNION ALL
    SELECT col1,col2 FROM DUMMY
) A;

我想在嵌套查询返回的第一列上应用类似的关键字。我尝试了以下方法:

SELECT col1, col2
FROM 
(
    SELECT 'ABC','DEF' FROM DUMMY
    UNION ALL
    SELECT col1,col2 FROM DUMMY
) A
WHERE COL1 LIKE 'A%';

但上述查询无效。我收到错误:ORA-00904:“COL1”:标识符无效。

相同的小提琴链接如下:http://sqlfiddle.com/#!4/1c54b/7

请有人可以指导我如何实现同样的目标吗?

编辑:我也在尝试从现有表中获取列。

提前致谢。

1 个答案:

答案 0 :(得分:1)

  • 使用 union 时,必须在两个表上匹配列名或别名。
  • 您可以调用已定义的列名和别名。

不要忘记定义列别名(' ABC' as col1)

SELECT col1, col2
FROM 
(
    SELECT 'ABC' as col1,'DEF' as col2 FROM DUMMY
    UNION ALL
    SELECT 'GHI' as col1,'JKL' as col2 FROM DUMMY
) A
WHERE COL1 LIKE 'A%';

我认为你正在尝试类似的事情;

SELECT col1, col2
FROM 
(
    SELECT col1,col2 FROM DUMMY
    UNION ALL
    SELECT col1,col2 FROM DUMMY2
) A
WHERE col1 LIKE 'A%';

here

上查看我的另一个示例