3

MySQL では、式を報告し、その結果を別の式で使用する場合、次のようなことができます。

SELECT @var1 := column1+column2 AS var1
, POWER(@var1,2) AS var2squared
FROM database.table;

MS SQL Server に相当するものはありますか?

4

3 に答える 3

3

MSSQL は実際には正しく動作するため、この方法では不可能です。MySQL は本質的に SQL の手続き型ラッパーであり、この構造は左から右に処理されるため機能します@var1。つまり、2 番目のフィールドが評価されるときに存在します。

MSSQL は、アトミック テーブル ベースのクエリ言語として SQL を正しく実行するため、選択されたデータ全体がフィールドの評価時に利用可能になり、その後、中間結果に基づいてすべての評価が行われます。

他の回答で提示された回避策は、問題を解決する良い方法です。

于 2013-11-04T17:27:42.253 に答える