DAX 第九篇:文本函数
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>):把文本格式的数字转换位数值类型
参考文档:
DAX 第九篇:文本函数的更多相关文章
- Python学习【第九篇】函数
函数 函数是什么? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上而下实现功能,其往往用一段代码来实现指定功能,开发过 ...
- 用仿ActionScript的语法来编写html5——第九篇,仿URLLoader读取文件
第九篇,仿URLLoader读取文件 先看看最后的代码 function readFile(){ urlloader = new LURLLoader(); urlloader.addEventLis ...
- R学习笔记 第四篇:函数,分支和循环
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- Mysql优化(出自官方文档) - 第九篇(优化数据库结构篇)
目录 Mysql优化(出自官方文档) - 第九篇(优化数据库结构篇) 1 Optimizing Data Size 2 Optimizing MySQL Data Types 3 Optimizing ...
- 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容
第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...
- 第九篇 Integration Services:控制流任务错误
本篇文章是Integration Services系列的第九篇,详细内容请参考原文. 简介在前面三篇文章,我们创建了一个新的SSIS包,学习了脚本任务和优先约束,并检查包的MaxConcurrentE ...
- 第九篇 SQL Server安全透明数据加密
本篇文章是SQL Server安全系列的第九篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
随机推荐
- 前端之jquery2
jquery属性操作 1.html() 取出或设置html内容 // 取出html内容 var $htm = $('#div1').html(); // 设置html内容 $('#div1').htm ...
- C# 校验并转换 16 进制字符串到字节数组
问题 最近在进行硬件上位机开发的时候,经常会遇到将 16 进制字符串转换为 byte[] 的情况,除了这种需求以外,还需要判定一个字符串是否是有效的 16 进制数据. 解决 字符串转 byte[] 的 ...
- CSS的border-radius 设置圆弧
现象:将div变为有一定幅度的圆形.椭圆形等 方法:使用css的border-radius 属性进行设置CSS3 border-radius 属性:向 div 元素添加圆角边框: 一:首先建立一个di ...
- 实验吧简单的SQL注入1,简单的SQL注入
接上面一篇博客. 实验吧简单的sql注入1 题目连接 http://ctf5.shiyanbar.com/423/web/ 同样,直接输入 1加个但引号,结果下面有返回错误, ...
- python的列表元素输出
1)for循环输出 这种方法是大家最容易想到的,也是最简单的,但是它有一个弊端:它的输出是竖向排列的,而我们往往需要水平输出. >>> for i in [1,2,3]: print ...
- 多线程状态与优先级、线程同步与Monitor类、死锁
一.线程状态 二.线程优先级 三.初步尝试多线程 class Program { static void Main(string[] args) { while (true) { MessagePri ...
- SQL(二)语法
数据库表 一个数据库通常包含一个或多个表.每个表有一个名字标识(例如:"Websites"),表包含带有数据的记录(行). 在本教程中,我们在 MySQL 的 RUNOOB 数据库 ...
- SpringCloud学习笔记(四、SpringCloud Netflix Ribbon)
目录: Ribbon简介 Ribbon的应用 RestTemplate简介 Ribbon负载均衡源码分析 Ribbon简介: 1.负载均衡是什么 负载均衡,根据其字面意思来说就是让集群服务具有共同完成 ...
- C++ 标准库 std::npos 表示 size_t 的最大值
参见:https://en.cppreference.com/w/cpp/algorithm/find std::npos 表示 size_t 的最大值,常用于对查找结果成功与否的判断. #inclu ...
- JDOJ1178:铺地板II
JDOJ1178:铺地板II https://neooj.com/oldoj/problem.php?id=1178 题目描述 用1 x 1和2 x 2的磁砖不重叠地铺满N x 3的地板,共有多少种方 ...