我正在尝试获取以下SQL代码中所示的功能:
select ....... , A.authorizedAction
, '1 - Add' = Case when (Cast((authorizedAction / 1) As Int) % 2) = 1 then 'Y' end
, '2 - Update/Display' = case when (Cast((authorizedAction / 2) As Int) % 2) = 1 then 'Y' end
, '4 - Update/Display all' = case when (Cast((authorizedAction / 4) As Int) % 2) = 1 then 'Y' end
, '8 - Correction' = case when (Cast((authorizedAction / 8) As Int) % 2) = 1 then 'Y' end
, A.authorizationActionKey .... from ....
我想将所有4种情况(添加,更新/显示,更新/显示全部和更正)表示为表格中工作表的列值。
我发现'case'语句是tableau中的有效函数,但我不确定我是否可以获得这种功能。基本上我只给了'authorizedAction',我需要为上面的4个案例创建一个计算字段。我能以某种方式将这些案例陈述分组为一个计算字段公式吗?
感谢任何帮助。如果你能为我提供一个有效的计算字段公式,那就不一样了!
答案 0 :(得分:1)
在上面的SQL语句中,您有一个输入字段,它被分成4个输出字段,每个输出字段可以是“Y”或空白。您可以在Tableau中创建一组类似的4个计算字段,每个字段都有一个公式,沿着
行(field name) (formula)
Add: if ([authorizedAction] % 2) = 1 then 'Y' else '' end
Update/Display: if (([authorizedAction] / 2) % 2) = 1 then 'Y' else '' end
Update/Display all: if (([authorizedAction] / 4) % 2) = 1 then 'Y' else '' end
Correction: if (([authorizedAction] / 8) % 2) = 1 then 'Y' else '' end