0

私は、米国の 50 州ごとに 50 列 (ビット値を含む) を含むテーブルを使用しています。1 を含むすべての列を返す SQL ステートメントを見つけようとしています。

どんな助けでも大歓迎です

4

2 に答える 2

3

これが新しい開発であり、既存のテーブルではない場合、次のことをお勧めします。(そうでなければ私は困惑しています。)多対多を実装したようです。@juergen d で提案されているように、州のテーブルを実装することをお勧めします(ビットフィールドはありませんが)。現在のエンティティをそのまま実装しますが、状態の列はありません。次に、州の ID 用とエンティティの ID 用の 2 つの列を持つ 3 番目のテーブルを実装します。

次に、エンティティのテーブルにビット フィールドを設定する代わりに、この 3 番目のテーブルにエントリを作成します。

その後、テーブルで結合を実行して、特定のエンティティに設定された状態を取得できます。

詳細については、 http://en.wikipedia.org/wiki/Many-to-many_(data_model)およびhttp://www.lornajane.net/posts/2011/inner-vs-outer-joins-on-aを参照してください。 -多対多の関係

于 2013-10-15T21:18:47.767 に答える
3

テーブルのデザインを変更する必要があります。このようなものを使用する方が良い

States table
-------------------
id       int
name     varchar(100)
bitcol   bit(1)

次に、このような状態を選択できます

select name from States
where bitcol = 1
于 2013-10-15T21:06:52.543 に答える