Reportbuilder 数据集错误与好SQL?

Reportbuilder data set errors with good SQL?

我有一个 bigint 状态,其中设置了按位标志,我正在尝试生成报告以使用此信息,我的代码是

cast(foo.State & 0x0 as bit)&1 as Case1,
cast(foo.State & 0x1 as bit)&1 as Case2,
cast(foo.State & 0x2 as bit)&1 as Case3,
cast(foo.State & 0x4 as bit)&1 as Case4,
cast(foo.State & 0x8 as bit)&1 as Case5,

但是当我尝试将 2 位组合成一个唯一状态时失败了,

我试过:

(cast(foo.State & 0x4 as bit) and cast(foo.State & 0x8 as bit)) as CaseBar

还有

Case foo.State & 0xc when 12 then 1 else 0 end as CaseBar

这两个 运行 在 SQL 查询中都很好,但在 reportbuilder 数据集属性中失败,这里有任何反馈或指示吗?

实现它的方法是:

cast((cast(foo.State & 0x8 as bit) & Cast(foo.State & 0x4 as bit)) as bit)&1 as CaseBar,

问题是报表生成器引擎不支持完整的 TSQL 命令集