0

テーブルに 3 つのフィールドを選択したい: 最初と 2 番目はbool. 3番目は(fist = 0 && second = 0)

私はこれを試しました:

SELECT
CASE ..condition1..
    THEN 1
    ELSE 0
END
AS first,
CASE ..condition2..
    THEN 1
    ELSE 0
END
AS second,
CASE 
    WHEN newTable.first = 0 AND newTable.second = 0 
    THEN 1
    ELSE 0
END
AS third
INTO newTable
FROM oldTable

しかし、私はエラーが発生しています:

The multi-part identifier "newTable.first" could not be bound;
The multi-part identifier "newTable.second" could not be bound.

何か提案していただけませんか?

このクエリの 3 番目のフィールドに入力する方法はありますか?

4

2 に答える 2

0

最初と 3 番目の条件を繰り返す必要があり、newtable はまだ存在しません。

SELECT
CASE ..condition1..
    THEN 1
    ELSE 0
END
AS first,
CASE ..condition2..
    THEN 1
    ELSE 0
END
AS second,
CASE 
    WHEN ..condition1.. OR ..condition2.. 
    THEN 1
    ELSE 0
END
AS third
INTO newTable
FROM oldTable

ノート:

newTable.first = 0 AND newTable.second = 0 

= NOT ..condition1.. AND  NOT ..condition2..

= ..condition1.. OR ..condition2.. (by applying de'morgans law)
于 2013-06-18T08:36:15.793 に答える
-1

これがあなたの答えです

select *,CASE WHEN tblTemo.first = 0 AND tblTemo.second = 0  THEN 1  ELSE 0 END from (

SELECT
CASE ..condition1..
    THEN 1
    ELSE 0
END
AS first,
CASE ..condition2..
    THEN 1
    ELSE 0
END
AS second
) as tblTemo
INTO newTable
FROM oldTable

クエリで列のエイリアスを指定することはできません

于 2013-06-18T08:37:36.553 に答える