1

このようなテーブルに行がありますPlayers

+-----------+----+----+----+----+----+----+----+----+
|  USERNAME | A  | B  | C  | D  | E  | F  | G  | H  |
+-----------+----+----+----+----+----+----+----+----+
|   Mike    | 45 | 34 | 56 | 58 | 29 | 74 | 39 | 48 |
+-----------+----+----+----+----+----+----+----+----+

今、私のクエリは次のようになるはずです..

SELECT USERNAME FROM PLAYERS 
IF 
 (DIFFERENCE BETWEEN A & B <20)

IF
 (DIFFERENCE BETWEEN C & D <20)

IF
 (DIFFERENCE BETWEEN E & F <20)
IF
 (DIFFERENCE BETWEEN G & H <20)

今.. 4つの条件のうち2つが真の場合、ユーザー名を選択する必要があります..助けてください

4

2 に答える 2

1

mysql の場合:

select username from (
    select username,
        if(b-a < 20, 1, 0) as ab,
        if(d-c < 20, 1, 0) as cd,
        if(f-e < 20, 1, 0) as ef,
        if(h-g < 20, 1, 0) as gh
    from players
) x where ab + cd + ef + gh = 2

abs()a が b より高くなる場合に使用できます。>= 22つ以上の条件が整っている場合に使用できます。

于 2013-02-09T02:04:52.177 に答える
1

想定される SQL Server

select
   username 
from(
    SELECT USERNAME,
        case when abs(a-b)<20 then 1 else 0 end A
        case when abs(c-d)<20 then 1 else 0 end b
        case when abs(e-f)<20 then 1 else 0 end c
        case when abs(g-h)<20 then 1 else 0 end d
    FROM PLAYERS
)tmp
WHERE tmp.a+tmp.b+tmp.c+tmp.d>=2
于 2013-02-09T02:03:15.080 に答える