DAX中用于处理文本的函数,和其他语言很相似。

一,文本连接

文本连接也可以使用操作符 & 来实现,也可以使用函数CONCATENATE来实现:

CONCATENATE(<text1>, <text2>) 

把整个表中的所有行,使用分隔符拼接为一个字符串,返回值是一个字符串,不常用:

CONCATENATEX(<table>, <expression>, [delimiter]) 

按照分隔符,对多个字符串进行连接,返回一个字符串:

COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)

例如,对DimDate表中每一行,把字段MonthName和CalendarYear以分隔符","组合在一起:

DISTINCT(SELECTCOLUMNS(DimDate, "Month", COMBINEVALUES(",", [MonthName], [CalendarYear])))

二,文本比较

比较两个文本是否相同,返回True或False

EXACT(<text1>,<text2>)  

三,文本查找

FIND函数是大小写敏感的,用于从within_text中查找find_text,如果存在该文本,返回第一次匹配的字符串首字符的位置;如果没有查找到,那么返回NotFoundValue指定的值,或者BLANK()。

FIND(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])  

FIND函数不支持通配符,SEARCH函数支持通配符查找,但是SEARCH不区分大小写,但是区分重音。

SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]]) 

CONTAINSSTRING函数用于检查是否包含特定的文本,该函数不区分大小写,并且可以使用通配符(?代表单字符,*代表任意字符,~用于转义通配符)

CONTAINSSTRING(<within_text>, <find_text>) 

CONTAINSSTRINGEXACT函数用于检查是否完全包含特定的文本,该函数区分大小,不可以使用通配符:

CONTAINSSTRINGEXACT(<within_text>, <find_text>)

例如,下面DAX表达式返回的值是TRUE、FALSE、FALSE、FALSE:

ROW(
"Case 1", CONTAINSSTRINGEXACT("abcd", "bc"),
"Case 2", CONTAINSSTRINGEXACT("abcd", "BC"),
"Case 3", CONTAINSSTRINGEXACT("abcd", "a*d"),
"Case 4", CONTAINSSTRINGEXACT("abcd", "ef")
)

四,格式化文本

FIXED 用于把数字舍入到指定的小数位数,并把结果转换为文本返回,如果把no_commas设置为1,在结果中不显式逗号;如果设置为0,或者忽略,在结果中显式逗号。

FIXED(<number>, <decimals>, <no_commas>)  

FORMAT函数用于格式化文本,用于把日期和数值类型显式为特定格式的文本:

FORMAT(<value>, <format_string>)

五,截取子串

从文本指定的开始位置和结束位置处截取子串

LEFT(<text>, <num_chars>)
RIGHT(<text>, <num_chars>)
MID(<text>, <start_num>, <num_chars>)

六,替换字符串

把old_text中从start_num开始的num_chars个字符替换为new_text:

REPLACE(<old_text>, <start_num>, <num_chars>, <new_text>)  

从文本中把old_text替换为new_text,替换的次数由参数instance_num决定:

SUBSTITUTE(<text>, <old_text>, <new_text>, <instance_num>)  

七,其他字符串函数

  • LOWER(<text>)  :转换为小写
  • UPPER (<text>) :转换位大写
  • TRIM(<text>)     :移除文本两端的空格
  • REPT(<text>, <num_times>):把文本重复num_times次
  • CODE(text) :把文本的首字符转换位ASCII编码
  • UNICHAR(number):把数字转换为Unicode
  • LEN(<text>):文本的长度
  • VALUE(<text>):把文本格式的数字转换位数值类型

参考文档:

Text functions

DAX 第九篇:文本函数的更多相关文章

  1. Python学习【第九篇】函数

    函数 函数是什么? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上而下实现功能,其往往用一段代码来实现指定功能,开发过 ...

  2. 用仿ActionScript的语法来编写html5——第九篇,仿URLLoader读取文件

    第九篇,仿URLLoader读取文件 先看看最后的代码 function readFile(){ urlloader = new LURLLoader(); urlloader.addEventLis ...

  3. R学习笔记 第四篇:函数,分支和循环

    变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...

  4. R语言学习 第四篇:函数和流程控制

    变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...

  5. Mysql优化(出自官方文档) - 第九篇(优化数据库结构篇)

    目录 Mysql优化(出自官方文档) - 第九篇(优化数据库结构篇) 1 Optimizing Data Size 2 Optimizing MySQL Data Types 3 Optimizing ...

  6. 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

    第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...

  7. 第九篇 Integration Services:控制流任务错误

    本篇文章是Integration Services系列的第九篇,详细内容请参考原文. 简介在前面三篇文章,我们创建了一个新的SSIS包,学习了脚本任务和优先约束,并检查包的MaxConcurrentE ...

  8. 第九篇 SQL Server安全透明数据加密

    本篇文章是SQL Server安全系列的第九篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  9. Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy   Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...

随机推荐

  1. c#微信公众号开发一----基本设置,服务器配置token验证,获取timestamp/nonce/signature

    一.c#微信公众号开发----基本设置 参考微信官方文档 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Acce ...

  2. git clone: HTTP Basic: Access denied 错误

    git clone 报 HTTP Basic: Access denied 错误 解决方案: 1. 如果账号密码有变动 用这个命令 git config –-system –-unset creden ...

  3. go-GUI-代码

    直接看网址吧,所有的GO-GUI代码!~~~~ 网址

  4. vue-父子组件和ref

    父组件向子组件传值 <div id="app"> <!-- 父组件,可以在引用子组件的时候, 通过 属性绑定(v-bind:) 的形式, 把 需要传递给 子组件的 ...

  5. MySQL学习——操作数据库

    MySQL学习——操作数据库 摘要:本文主要学习了使用DDL语句操作数据库的方法. 创建数据库 语法 create database [if not exists] 数据库名 [default] ch ...

  6. The method newInstance() from the type Class is deprecated since version 9

    newInstance()在 java9中已被弃用 JAVA9之前用法 Class.forName("类的全限定名").newInstance(); JAVA9之后用法 Class ...

  7. XAF-从业务类继承 (XPO)

    In this lesson, you will learn how to implement business classes for your application using the Busi ...

  8. Feign自动装配原理

    spring.factories 按照以往的惯例,在研究源码的时候,我们先看一下spring.factories文件下自动装配的类FeignAutoConfiguration,其中比较重要的东西有这么 ...

  9. JS基础语法---函数练习part2---10个综合练习(运用:循环/数组/函数)

    练习1:求2个数中的最大值 function getMax(num1, num2) { return num1 > num2 ? num1 : num2; } console.log(getMa ...

  10. DDL、DML、TCL

    一.DDL 1.创建表(CREATE) (1)数据库对大小写不敏感,只对字符串大小写敏感. (2)使用create关键字创建表.(-- 表示注释). 格式: CREATE TABLE 表名( 字段名1 ...