对于每50个美国州,我正在使用包含50列(带位值)的表。我正在尝试找到一个SQL语句,它将返回包含1的所有列。我已经四处查找了没有运气的方法。
非常感谢任何帮助
答案 0 :(得分:3)
您应该更好地更改表格设计。更好地使用这样的东西
States table
-------------------
id int
name varchar(100)
bitcol bit(1)
然后你可以选择像这样的状态
select name from States
where bitcol = 1
答案 1 :(得分:3)
如果这是一个新的开发,而不是现有的表,我建议如下。 (否则我很难过。)听起来你已经实现了多对多。我建议您按照@juergen d的建议为州实施一个表(尽管没有位字段);按原样实现当前实体但没有状态列。然后实现第三个包含两列的表,一个用于状态ID,另一个用于实体的ID。
然后,不是在实体表上设置位字段,而是在第三个表中创建条目。
然后,您可以对表执行连接以获取在特定实体上设置的状态。
有关详细信息,请参阅http://en.wikipedia.org/wiki/Many-to-many_(data_model)和http://www.lornajane.net/posts/2011/inner-vs-outer-joins-on-a-many-to-many-relationship