3

このようなお問い合わせがあります。列名「A.

select 'DummyValue1' as ColumnNameA 
  from TableT. 

今、次のようなフィルターを適用したいと思います

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

オラクルでそれを行うにはどうすればよいですか。

ColumnNameA は実際にはデータベース列ではないため、ここで「DummyValue1」に注意してください。結果セットを作成しているだけです。

4

3 に答える 3

4

WHEREクエリ処理順序のため、エイリアス in 句は使用できません。ただし、そのようなものには外部選択またはCTEを使用できます

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

これがSQLFiddleのデモです

于 2013-09-02T09:23:03.507 に答える
2

クエリの構造は同じままです。クエリのWHERE句の文字列リテラルのみを単一引用符で囲む必要があります。これは、Oracle では、二重引用符で囲まれた文字列リテラルが識別子と見なされるためです。

select 'DummyValue1' as ColumnNameA 
  from TableT 
 where ColumnNameA  = 'Value1'
于 2013-09-02T09:21:19.970 に答える