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. MySQL 中的外键

    表和表之间可存在引用关系,这在抽象数据到表时,是很常见的.这种联系是通过在表中创建外键(foreign key)来实现的. 比如一个订单,可能关联用户表和产品表,以此来记录谁买了什么产品. 约定两个概 ...

  2. .net core使用NLog日志

    前言:NLog日志对.net core web项目最新的支持在官网上有最新的介绍: 官网介绍地址:https://github.com/NLog/NLog/wiki/Getting-started-w ...

  3. 帝国CMS系统目录结构介绍

    帝国CMS目录结构介绍 / 系统根目录├d/            附件和数据存放目录 (data)│├file/       附件存放目录│├js/         JS调用生成目录│└txt/   ...

  4. 5-API 网关 kong 实战

    原文:https://cloud.tencent.com/developer/article/1477672 1. 什么是Kong? 目前互联网后台架构一般是采用微服务,或者类似微服务的形式,应用的请 ...

  5. Flask 教程 第一章:Hello, World!

    本文翻译自The Flask Mega-Tutorial Part I: Hello, World! 一趟愉快的学习之旅即将开始,跟随它你将学会用Python和Flask来创建Web应用.上面的视频包 ...

  6. spark的wordcount

    在开发环境下实现第一个程序wordcount 1.下载和配置scala,注意不要下载2.13,在spark-core明确支持scala2.13前,使用2.12或者2.11比较好. https://ww ...

  7. 一行代码完成 Java的 Excel 读写--easyexcel

    最近我在 Github 上查找一个可以快速开发 excel 导入导出工具,偶然发现由阿里开发 easyexcel 开源项目,尝试使用后感觉这款工具挺不错的,下面分享一下我的 easyexcel 案例使 ...

  8. 9.JavaCC官方入门指南-例4

    例4:计算器--添加减法运算 1. calculator1.jj   为了使得计算器具备更多功能,我们需要更多的操作符,比如减法.乘法和除法.接下来我们添加减法运算.   在词法分析器的描述部分,我们 ...

  9. ssh 使用指定网卡 连接特定网络

    有时候,当电脑有两个网卡时:一个网卡 连接免费网络,一个网卡连接收费网络.这样当你想使用免费网络与远程服务器建立连接,使用诸如scp命令或者 ssh 隧道之类传输大文件.这时候你需要指定特定的特定的网 ...

  10. centos 的系统管理命令 service systemctl

    centos 的 systemctl 命令 systemctl is-enabled *.service     #查询服务是否开机启动 systemctl enable *.service    # ...