0

同じデータの列が 20 あります。Dept_1、dept_2、dept_3....これらの各列が一致するデータベースにクエリを実行したい (疑似コード: where dept_1, dept_2, dept_3... = 'ACCOUNTING') 節でこれらの列の 20 個すべてを実際に書き出す必要はありませんWHERE。これを行う方法はありますか?

4

3 に答える 3

2

私はデータベースの設計に真剣に疑問を投げかけています...しかし、おそらくこれはあなたが探しているものですか?

WHERE Dept_1 = 'ACCOUNTING'
  AND Dept_2 = 'ACCOUNTING'
  AND Dept_3 = 'ACCOUNTING'
  ... ad nauseum
  AND Dept_19 = 'ACCOUNTING'
  AND Dept_20 = 'ACCOUNTING'
于 2012-05-14T22:47:15.623 に答える
0

短いバージョンを使用する方が簡単だと思います:

select *
from table
where 'ACCOUNTING' in (dept_1, dept_2, dept_3, . . . )

すべてのフィールドを同じにする必要がある場合は、WHERE 句と AND を使用します。

ただし、データベースを再設計して、部門ごとに個別の行を持つテーブルを作成することもできます。

于 2012-05-15T01:49:25.050 に答える
0

最も簡単な方法は、次のようなことです。

SELECT * FROM table
 WHERE dept_1 = 'ACCOUNTING'
   AND dept_2 = 'ACCOUNTING'
   AND dept_3 = 'ACCOUNTING'

また

SELECT * FROM table
 WHERE dept_1 = 'ACCOUNTING'
    OR dept_2 = 'ACCOUNTING'
    OR dept_3 = 'ACCOUNTING'

3 つのフィールドすべてが同じ値を持つデータを取得するか、少なくとも 1 つのフィールドが一致する場合にデータを取得するかによって異なります。

于 2012-05-14T22:52:40.630 に答える