DAX Power Query去首尾空格:SQL的ltrim(rtrim(text))等价于DAX TRIM或M Text.Trim吗?
关于SQL的LTRIM(RTRIM())在DAX和Power Query(M语言)中的等价实现
嘿,我来帮你理清楚这几个函数的关系和等价实现~首先先明确核心:SQL里的LTRIM(RTRIM(text))的作用很明确——只移除文本开头和结尾的所有空格,文本中间的空格(不管单个还是多个)都会原封不动保留。接下来分别看DAX和M语言的对应实现:
DAX中的等价实现
- 如果要完全复刻SQL的
LTRIM(RTRIM())行为(仅删首尾,中间空格不变):DAX本身提供了单独的LTRIM()和RTRIM()函数,直接组合使用就可以,写法和SQL几乎一致:LTRIM(RTRIM([YourTextColumn])) - 至于你问到的DAX原生
TRIM()函数:它的功能其实比SQL的LTRIM(RTRIM())多一点——除了删除首尾空格,它还会把文本中间的多个连续空格自动替换成单个空格。举个实际例子对比:- 原文本:
" Hello World " TRIM()处理结果:"Hello World"(中间的多个空格变成了单个)LTRIM(RTRIM())处理结果:"Hello World"(中间的空格完全保留)
所以根据你的实际需求选就行:不需要动中间空格就用LTRIM(RTRIM()),要规整中间空格的话TRIM()更省心。
- 原文本:
Power Query(M语言)中的等价实现
M语言里的Text.Trim()函数,默认行为就和SQL的LTRIM(RTRIM(text))完全一致:只移除文本首尾的空格,中间的空格全部保留。用法非常直接:
Text.Trim([YourTextColumn])
如果需要移除首尾的其他字符(比如制表符、换行符),还可以加第二个参数指定,比如Text.Trim([YourTextColumn], " \t\n"),但默认情况下只处理空格,完全匹配你要的SQL等价效果。
内容的提问来源于stack exchange,提问作者Przemyslaw Remin
相关产品推荐
相关产品推荐

