You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DAX中是否存在与SQL CASE语句功能类似的函数?

DAX 实现 SQL CASE 逻辑的方案

DAX 没有与 SQL CASE 语句同名的原生语法,SWITCH 函数是和 SQL CASE 功能、执行逻辑完全对齐的等价实现,单条件简单场景也可以用 IF 函数简化写法。

针对你给出的SQL示例逻辑:当pri column字段值为'p'时返回policy number字段值,无匹配时返回空,结果列命名为policy pri number,对应DAX写法如下:

  • 通用多条件兼容写法(完全匹配CASE执行逻辑)
    使用SWITCH(TRUE(), ...)模式,该模式会按书写顺序依次判断条件,匹配到第一个满足的条件即返回对应结果,所有条件不满足时返回设置的默认值,和SQL CASE的执行顺序、逻辑完全一致:
-- 计算列写法,替换成你实际的表名即可
policy pri number = 
SWITCH(
    TRUE(),
    '你的表名'[pri column] = "p", '你的表名'[policy number],
    BLANK() -- 所有条件不匹配时返回空,和原SQL无ELSE分支的默认行为一致
)

如果是编写度量值,只需要根据计算上下文调整字段的聚合方式即可,比如用SELECTEDVALUE取筛选上下文的当前值、或者用MAX/SUM等做聚合,判断结构不需要改动。

  • 单条件简化写法
    只有一个判断条件时,可以直接用IF函数实现,代码更简短:
policy pri number = 
IF(
    '你的表名'[pri column] = "p",
    '你的表名'[policy number],
    BLANK()
)

语法对应关系参考:
SQL中多分支CASE写法 CASE WHEN 条件1 THEN 值1 WHEN 条件2 THEN 值2 ... ELSE 默认值 END,可以1:1转换为DAX写法 SWITCH(TRUE(), 条件1, 值1, 条件2, 值2, ..., 默认值),支持任意数量的条件分支,没有数量限制。

内容的提问来源于stack exchange,提问作者zain qazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 00:24:37