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 是一个高性能的分布式内存对象缓存系统,用 ...
随机推荐
- Requests库主要方法解析以及Requests库入门需要掌握的框架
Requests库主要方法解析以及Requests库入门 1.requests.request(method,url,**kwargs) **kwargs:控制访问的参数,均为可选项 params:字 ...
- EF中获取当前上下文的表名
EF在处理并发上并不是很好,很多时候我们需要手动写sql操作数据库.但是在基类中我们如何获取当前服务仓储操作的表呢? 使用正则是其中一种解决办法 Repository.Table是一条查询语句,通过t ...
- windows环境下安装配置MongoDB
版本选择MongoDB的版本命名规范如:x.y.z: y为奇数时表示当前版本为开发版,如:2.3.0.2.1.1: y为偶数时表示当前版本为稳定版,如:2.0.1.2.2.0: 目前官网上最新的版本为 ...
- 为了能早点买房,我用 Python 预测房价走势!
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Python高校 PS:如有需要Python学习资料的小伙伴可以加 ...
- logstash的安装,启动与输出
在相应的目录下 wget https://artifacts.elastic.co/downloads/logstash/logstash-6.6.2.tar.gz 解压 tar -zxvf log ...
- 027.[转] 理解OAuth 2.0
作者: 阮一峰 日期: 2014年5月12日 http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorizat ...
- linux下配置jdk,tomcat,mysql,redis,zookeeper
jdk: 解压: tar zxvf jdk-8u144-linux-x64.tar.gz 执行:vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0 ...
- Django框架(二十二)-- Django rest_framework-解析器
一.解析器的作用 根据请求头 content-type 选择对应的解析器对请求体内容进行处理,将传过来的数据解析成字典 二.使用解析器 1.局部使用 在视图类中重定义parser_classes即可, ...
- 震惊,用了这么多年的 CPU 利用率,其实是错的
导读:本文翻译自 Brendan Gregg 去年的一片博客文章 "CPU Utilization is Wrong",从标题就能想到这篇文章将会引起争议.文章一上来就说,我们&q ...
- Matplotlib基础 可视化绘图 学习笔记
简单的绘图 1.确定画布并画线 import matplotlib.pyplot as plt #静态绘图 fig = plt.figure() ax = fig.add_subplot(345) # ...