0

比較演算子(>、<、> =、<=、!=)は、SQLでの列計算のselect句で使用できますか?例えば、

SELECT column1, column2, column1 >= column2 AS "column3" FROM table

MSAccessなどの一部のデータベースのみが比較演算子をサポートしているようです。異なるデータベースへのODBC接続を使用しています。私が知っている1つの方法は、"CASE...WHEN...THEN...ELSE"代わりに句を使用することです。問題は、select句で比較演算子を使用して新しい列を計算する別の方法があるかどうかです。

もう1つの質問は、新しい計算列(例では「column3」)を使用してWHERE句内のデータをフィルタリングする場合、SQLはどのように表示される必要があるかということです。

4

1 に答える 1

1

その通りです。この比較構文は、すべてのデータベースでサポートされているわけではありません。しかし、最も人気のあるオープンソースデータベース:MySQL(SQLFiddleリンク)、PostgreSQLSQLiteはすべてそれをサポートしています。

MSSQLおよびOracleでは、を使用する必要があります

CASE a>b THEN 1 ELSE 0 END

回避策として(これは前述のすべてのデータベースでも機能します)。

WHERE句での新しい列の使用に関する質問について:一般に、内側のSELECTの周りにもう1つの外側のSELECTをラップし、外側のSELECTで別のWHEREを使用しない限り、これを行うことはできません。

于 2013-02-05T05:59:53.253 に答える