1

我面临一个棘手的问题,因为我的表有两个不同的列,它们决定记录是否处于活动状态。(两个不同的列是因为同一个数据库一次又一次的变化,当然不是我。)

这些字段是bit数据库中的类型。任何人都可以建议一个从表中获取记录的查询。

前任。从产品中选择 *(isActive = 0 或 isCancelled =1)

4

3 回答 3

1

不活动:

select * from product where isActive = 0 or isCancelled =1

积极的

select * from product where isActive = 1 and isCancelled =0
于 2012-11-09T12:59:12.913 回答
1

我认为这是编写此查询的好方法

select * from product where isActive = 1 and isCancelled = 0 -- Active records
select * from product where not (isActive = 1 and isCancelled = 0) -- Inactive records
于 2012-11-09T13:12:58.360 回答
0

我会选择计算值:

select *, (isActive = 1 and isCancelled = 0) as active
from product

或者更好的是创建一个视图来隐藏这种丑陋:

create view complete_product as
select *, (isActive = 1 and isCancelled = 0) as active
from product
于 2012-11-09T13:21:06.740 回答