0

私はこのSQLを使用しています:

SELECT sys_tbldef_desc as tbldef_desc
FROM sys_tbldef
WHERE UPPER(tbldef_desc) = UPPER('a tbldef desc')

そして、私はこのエラーを受け取ります:

Error at line 1 - Dynamic SQL Error
SQL error code = -206
Column unknown
TBLDEF_DESC

誰かが解決策を知っていますか?

4

3 に答える 3

5

ALIASonWHERE句は使用できません。操作の SQL 順序は次のとおりです。

  • FROM 句
  • WHERE句
  • GROUP BY 句
  • HAVING 句
  • SELECT 句 (エイリアスはここで行われます)
  • ORDER BY 句

句は、句WHEREの前に最初に実行されSELECTます。代わりに列名を使用する必要があります。例えば:

SELECT sys_tbldef_desc as tbldef_desc
FROM sys_tbldef
WHERE UPPER(sys_tbldef_desc) = UPPER('a tbldef desc')

本当に を使用したい場合ALIASは、サブクエリが必要です。例:

SELECT tbldef_desc
FROM
(
    SELECT sys_tbldef_desc as tbldef_desc
    FROM sys_tbldef
) a
WHERE UPPER(tbldef_desc) = UPPER('a tbldef desc')

しかし、私は最初のものを好みます。

于 2013-01-02T08:26:21.543 に答える
2

WHERE 句でエイリアス名を使用することはできません。クエリは次のようにする必要があります。

SELECT sys_tbldef_desc as tbldef_desc
FROM sys_tbldef
WHERE UPPER(sys_tbldef_desc) = UPPER('a tbldef desc')
于 2013-01-02T08:26:41.270 に答える
1

私は解決策を見つけました:

SELECT *
FROM sys_tbldef
where UPPER(case when sys_tbldef_trnslt_desc is null
then sys_tbldef_desc else sys_tbldef_trnslt_desc end) = UPPER('a table desc')
于 2013-01-02T10:01:24.057 に答える