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. ElasticStack的入门学习

    Beats,Logstash负责数据收集与处理.相当于ETL(Extract Transform Load).Elasticsearch负责数据存储.查询.分析.Kibana负责数据探索与可视化分析. ...

  2. JVM中优化指南

    JVM中优化指南 如何将新对象预留在年轻代 如何让大对象进入年老代 如何设置对象进入年老代的年龄 稳定的 Java 堆 VS 动荡的 Java 堆 增大吞吐量提升系统性能 尝试使用大的内存分页 使用非 ...

  3. ...mapMutations前面的三个点什么意思

    ...mapMutations(['login']),对象展开运算符

  4. 使用百度的webuploader进行附件上传

    相较于之前使用的上传空间的优点:支持html5,不用再安装flash插件,没有大小限制,分片以后上传,上传以后再进行合并. 前端js代码 <script type="text/java ...

  5. haproxy动静分离的验证

    线上出现过项目的静态文件被拦截,不能直接访问.所以想到了haproxy指向对应的url来访问静态文件,想到这里在网络搜索了下,确实有此功能.立即上测试环境验证下: 在listen中增加两行: ​ #定 ...

  6. 『010』NoSQL

    『010』索引-Database NoSQL [001]- 点我快速打开文章[01-Redis 简单介绍] 更新中

  7. 自己整理的模拟爬虫的user-agent

    自己经常用的一些爬虫用的user-agent头部 This XML file does not appear to have any style information associated with ...

  8. lua 12 table 的使用

    转自:http://www.runoob.com/lua/lua-tables.html table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组.字典等. Lua table ...

  9. python27期jquery:

    JavaScript:(简称“JS”) 是一种轻量级的编程语言(ECMAscript5或6)是一种解释性脚本语言(代码不进行预编译)主要用来向HTML页面添加交互行为JavaScript 是互联网上最 ...

  10. IntelliJ IDEA 创建动态的JavaWeb工程(五)

    1. 创建动态的web项目 如果创建项目后没有自动创建web文件夹,即没有自动创建 web.xml 及 index.jsp 文件,还可以通过IDEA编辑器中的File -- Project Struc ...