4

特定の条件が満たされた場合にのみAND句を追加するクエリを作成しようとしています。

これは私が求めているものです:

SELECT DISTINCT
  id
  name
  active
FROM team
WHERE id = 1234
IF team.active = 'y'
  AND team.id IN
    {
       query
    }
ELSEIF team.active = 'n'
  AND team.id IN
    {
      query
    }

しかし、SQLでこれを行う方法がわかりません。助言がありますか?

4

3 に答える 3

5
 SELECT DISTINCT
    id
    name
    active
    FROM team
 WHERE id = 1234
   AND (team.active = 'y'
     AND team.id IN
        {
          query
        }) 
   OR
    (team.active = 'n'
     AND team.id IN
      {
        query
      })

AND および OR 結合子を使用してロジックを作成します。

于 2012-12-10T13:06:24.793 に答える
3

ブール論理を次のように使用できます

SELECT ...
FROM team
WHERE id = 1234
    AND (
        (team.active = 'y' AND team.id IN query)
        OR
        (team.active = 'n' AND team.id IN query)
    )

2 つのブランチの違いを見逃していませんか?

于 2012-12-10T13:07:17.147 に答える
-1

結果を達成するためにデコードステートメントを使用できます

SELECT DISTINCT
  id
  name
  active
FROM team
WHERE id = 1234 and
team.id in (
decode (team.active,'y',(query),'n',(query))

case ステートメントを使用することもできます

于 2012-12-10T13:13:41.680 に答える