0

次のクエリを実行したいと思います。@city値は実行時に提供されます

Select * from Emp
    where empno in (
        if( @city = 'Bangalore')
            Begin
                Select Empno from Emp
                    where EmpCity = @city
            End
        Else
            Begin
                Select empno from Emp
        End
    )

代替手段を提供することによって親切に私を助けてください

4

2 に答える 2

1

IF制御フローステートメントです。ステートメントを他のステートメント内に配置することはできません。

思いついたときに人々が通常探しているのIFCASEであるです。ただし、この場合、はるかに単純なクエリを実行できるようです。

Select * from Emp
where
    (EmpCity = @city or @city != 'Bangalore') and
    (EmpSalary = @salary or @salary != 20000) and
    (Designation = @designation or @designation != 'PM')

ネストされた選択がある理由がまったくわかりません

于 2012-09-25T07:01:39.503 に答える