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. 浏览器关闭后Session真的消失了吗?

    今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?  我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保 存当前用户的状态信 ...

  2. NET EF 连接Oracle 的配置方法记录

    主要记录下如何在EF 中连接Oracle s数据库,很傻瓜式,非常简单,但是不知道的童鞋,也会搞得很难受,我自己就是 1.创一个控制台程序,并且添加  Oracle.ManagedDataAccess ...

  3. String字符串工具类

    字符串类(StringUtil.cs) using System; namespace Sam.OA.Common { /// <summary> /// 字符处理工具类 /// 作者:陈 ...

  4. 易优CMS:type的基础用法

    [基础用法] 名称:type 功能:获取指定栏目信息 语法: {eyou:type typeid='栏目ID' empty='暂时没有数据'} <a href="{$field.typ ...

  5. SSM框架之Mybatis(1)入门

    Mybatis(1)入门 1.mybatis的概述 mybatis是一个持久层框架,用java编写的. 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等 ...

  6. JS常用标签

    1.由来 JavaScript的出现就是为了解决,不需要将所有的表单数据全部提交到服务器. 2.添加 加载Js代码的三种方式: 第一种:<script></script>标签里 ...

  7. 「SAP技术」 SAP MM MPN物料的采购初探

    「SAP技术」 SAP MM MPN物料的采购初探 1, MPN物料号与我方正常使用料号物料主数据之间的LINK关系维护 MPN料号 14000005 , 我方料号11000250 , 2,采购信息记 ...

  8. Android框架Volley使用:Json请求实现

    首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...

  9. HttpClient忽略SSL证书

    今天公司项目请求一个接口地址是ip格式的,如:https://120.20.xx.xxx/xx/xx,报一个SSL的错: 由于之前请求的接口地址都是域名地址,如:https://www.xxx.com ...

  10. kafka相关操作

    kafka安装 下载 wget http://apache.gree.com/apache/kafka/1.0.2/kafka_2.11-1.0.2.tgz tar -zxvf kafka_2.11- ...