zoukankan      html  css  js  c++  java
  • 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>):把文本格式的数字转换位数值类型

    参考文档:

    Text functions

  • 相关阅读:
    消息队列(一)
    Servlet3.1学习(三)
    再弄一片文章凑个4篇文章的数,主要是用于XML和 Binary序列化和反序列化的类
    Entity Framework底层操作封装(3)
    Entity Framework底层操作封装(2)
    Entity Framework底层操作封装(1)
    实现合并区间
    socket简单案例实现
    PostgreSQL11.2数据恢复记录(From Physical Files)
    Spring Data JPA 与 MyBatis 对比分析
  • 原文地址:https://www.cnblogs.com/ljhdo/p/10420858.html
Copyright © 2011-2022 走看看