在oracle中的自定义列中应用过滤器

时间:2013-09-02 09:14:32

标签: sql oracle

我有这样的查询。我想用列名“A。

过滤
select 'DummyValue1' as ColumnNameA 
  from TableT. 

现在我想应用像

这样的过滤器
select 'DummyValue1' as ColumnNameA 
  from TableT 
 where ColumnNameA  = "Value1" .

如何在Oracle中执行此操作。

请注意这里'DummyValue1',因为ColumnNameA实际上不是数据库列。我只是在我的结果集中创建。

3 个答案:

答案 0 :(得分:3)

由于查询处理顺序,您无法在WHERE子句中使用别名。但你可以使用外部选择或CTE来做类似的事情

SELECT t.*
  FROM
(
  SELECT 'DummyValue1' as ColumnNameA, ... 
    FROM TableT 
) t
 WHERE ColumnNameA = 'Value1'

这是 SQLFiddle 演示

答案 1 :(得分:2)

查询的结构保持不变,只有查询的WHERE子句中的字符串文字需要用单引号括起来,因为用双引号括起来的Oracle中的字符串文字将被考虑作为标识符:

select 'DummyValue1' as ColumnNameA 
  from TableT 
 where ColumnNameA  = 'Value1'

答案 2 :(得分:0)

如果我理解正确,这应该有效:

SELECT ColumnNameA as 'DummyValue1'
FROM TableT
WHERE ColumnNameA = 'Value1'
相关问题