计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

字符串函数

更新时间:2025-01-22 GMT+08:00

DLI常用字符串函数如下所示:

表1 字符串运算符

运算符

返回类型

描述

||

VARCHAR

两个字符串的拼接。

CHAR_LENGTH

INT

返回字符串中的字符数量。

CHARACTER_LENGTH

INT

返回字符串中的字符数量。

CONCAT

VARCHAR

拼接两个或多个字符串值从而组成一个新的字符串。如果任一参数为NULL时,则跳过该参数。

CONCAT_WS

VARCHAR

将每个参数值和第一个参数separator指定的分隔符依次连接到一起组成新的字符串,长度和类型取决于输入值。

HASH_CODE

INT

返回字符串的HASH_CODE()的绝对值。参数除string外,也支持int/bigint/float/double。

INITCAP

VARCHAR

返回字符串,将单词首字母转换为大写,其余为小写。 单词是由非字母、数字、字符分隔的字母、数字、字符序列。

IS_ALPHA

BOOLEAN

判断字符串是否只包含字母。

IS_DIGITS

BOOLEAN

判断字符串是否只包含数字。

IS_NUMBER

BOOLEAN

判断字符串是否是数值。

IS_URL

BOOLEAN

判断字符串是否是合法的URL地址。

JSON_VALUE

VARCHAR

获取json字符串中指定path的值。

KEY_VALUE

VARCHAR

获取键值对字符串中某一个key对应的值。

LOWER

VARCHAR

返回小写字符的字符串。

LPAD

VARCHAR

将pad字符串拼接到str字符串的的左端,直到新的字符串达到指定长度len为止。

MD5

VARCHAR

返回字符串的MD5值。如果参数为空串(即参数为")时,则返回空串。

OVERLAY

VARCHAR

用y替换x的子串。从start_position开始,替换length+1个字符。

POSITION

INT

返回目标字符串x在被查询字符串y里第一次出现的位置。如果目标字符串x在被查询字符串y中不存在,返回值为0。

REPLACE

VARCHAR

字符串替换函数,将字符串str1中的所有str2替换成str3。

  • str1:原字符。
  • str2:目标字符。
  • str3:替换字符。

RPAD

VARCHAR

将pad字符串拼接到str字符串的的右端,直到新的字符串达到指定长度len为止。

SHA1

STRING

返回字符串expr的SHA1值。

SHA256

STRING

返回字符串expr的SHA256值。

STRING_TO_ARRAY

ARRAY[STRING]

将字符串value按delimiter分隔为字符串数组。

SUBSTRING

VARCHAR

返回从给定位置开始的A的子字符串。起始位置从1开始。

TRIM

STRING

从B中除去字符串首尾/首位/末尾的A。默认情况下,首尾的A都被删除。

UPPER

VARCHAR

返回转换为大写字符的字符串。

||

  • 功能描述

    两个字符串的拼接。

  • 语法
    VARCHAR VARCHAR a || VARCHAR b
  • 参数说明
    • a:字符串。
    • b:字符串。
  • 示例
    • 测试语句
      SELECT "hello" || "world";
    • 测试结果
      "helloworld"

CHAR_LENGTH

  • 功能描述

    返回字符串中的字符数量。

  • 语法
    INT CHAR_LENGTH(a)
  • 参数说明
    • a:字符串。
  • 示例
    • 测试语句
      SELECT  CHAR_LENGTH(var1) as aa FROM T1;
    • 测试数据和结果
      表2 测试数据和结果

      测试数据(var1)

      测试结果(aa)

      abcde123

      8

CHARACTER_LENGTH

  • 功能描述

    返回字符串中的字符数量。

  • 语法
    INT CHARACTER_LENGTH(a)
  • 参数说明
    • a:字符串。
  • 示例
    • 测试语句
      SELECT  CHARACTER_LENGTH(var1) as aa FROM T1;
    • 测试数据和结果
      表3 测试数据和结果

      测试数据(var1)

      测试结果(aa)

      abcde123

      8

CONCAT

  • 功能描述

    拼接两个或多个字符串值从而组成一个新的字符串。如果任一参数为NULL时,则跳过该参数。

  • 语法
    VARCHAR CONCAT(VARCHAR var1, VARCHAR var2, ...)  
  • 参数说明
    • var1:字符串
    • var2:字符串
  • 示例
    • 测试语句
      SELECT CONCAT("abc", "def", "ghi", "jkl");
    • 测试结果
      "abcdefghijkl"

CONCAT_WS

  • 功能描述

    将每个参数值和第一个参数separator指定的分隔符依次连接到一起组成新的字符串,长度和类型取决于输入值。

    说明:

    如果separator取值为null,则将separator视作与空串进行拼接。如果其它参数为null,在执行拼接过程中跳过取值为null的参数。

  • 语法
    VARCHAR CONCAT_WS(VARCHAR separator, VARCHAR var1, VARCHAR var2, ...)
  • 参数说明
    • separator:分隔符。
    • var1:字符串。
    • var2:字符串。
  • 示例
    • 测试语句
      SELECT CONCAT_WS("-", "abc", "def", "ghi", "jkl");
    • 测试结果
      "abc-def-ghi-jkl"

HASH_CODE

  • 功能描述

    返回字符串的HASH_CODE()的绝对值。参数除string外,也支持int/bigint/float/double。

  • 语法
    INT HASH_CODE(VARCHAR str)
  • 参数说明
    • str:字符串。
  • 示例
    • 测试语句
      SELECT HASH_CODE("abc");
    • 测试结果
      96354

INITCAP

  • 功能描述

    返回字符串,将字符串首字母转换为大写,其余为小写。字符串是由非字母、数字、字符分隔的字母、数字、字符序列。

  • 语法
    VARCHAR INITCAP(a)
  • 参数说明
    • a:字符串。
  • 示例
    • 测试语句
      SELECT INITCAP(var1)as aa FROM T1;
    • 测试数据和结果
      表4 测试数据和结果

      测试数据(var1)

      测试结果(aa)

      aBCde

      Abcde

IS_ALPHA

  • 功能描述

    判断字符串是否只包含字母。

  • 语法
    BOOLEAN IS_ALPHA(VARCHAR content)
  • 参数说明
    • content:输入字符串。
  • 示例
    • 测试语句
      SELECT IS_ALPHA(content)  AS case_result FROM T1;
    • 测试数据和结果
      表5 测试数据和结果

      测试数据(content)

      测试结果(case_result)

      Abc

      true

      abc1#$

      false

      null

      false

      ""(空字符串)

      false

IS_DIGITS

  • 功能描述

    判断字符串是否只包含数字。

  • 语法
    BOOLEAN IS_DIGITS(VARCHAR content)
  • 参数说明
    • content:输入字符串。
  • 示例
    • 测试语句
      SELECT IS_DIGITS(content) AS case_result FROM T1;
    • 测试数据和结果
      表6 测试数据和结果

      测试数据(content)

      测试结果(case_result)

      78

      true

      78.0

      false

      78a

      false

      null

      false

      "" (空字符串)

      false

IS_NUMBER

  • 功能描述

    判断字符串是否是数值。

  • 语法
    BOOLEAN IS_NUMBER(VARCHAR content)
  • 参数说明
    • content:输入字符串。
  • 示例
    • 测试语句
      SELECT IS_NUMBER(content) AS case_result FROM T1;
    • 测试数据和结果
      表7 测试数据和结果

      测试数据(content)

      测试结果(case_result)

      78

      true

      78.0

      true

      78a

      false

      null

      false

      "" (空字符串)

      false

IS_URL

  • 功能描述

    判断字符串是否是合法的URL地址。

  • 语法
    BOOLEAN IS_URL(VARCHAR content)
  • 参数说明
    • content:输入字符串。
  • 示例
    • 测试语句
      SELECT IS_URL(content) AS case_result FROM T1;
    • 测试数据和结果
      表8 测试数据和结果

      测试数据(content)

      测试结果(case_result)

      https://www.testweb.com

      true

      https://www.testweb.com:443

      true

      www.testweb.com:443

      false

      null

      false

      "" (空字符串)

      false

JSON_VALUE

  • 功能描述

    获取json字符串中指定path的值。

  • 语法
    VARCHAR JSON_VALUE(VARCHAR content, VARCHAR path)
  • 参数说明
    • content:输入字符串。
    • path:要获取的path路径。
  • 示例
    • 测试语句
      SELECT JSON_VALUE(content, path) AS case_result FROM T1;
    • 测试数据和结果
      表9 测试数据和结果

      测试数据(content,path)

      测试结果(case_result)

      { "a1":"v1","a2":7,"a3":8.0,"a4": {"a41":"v41","a42": ["v1","v2"]}}

      $

      { "a1":"v1","a2":7,"a3":8.0,"a4": {"a41":"v41","a42": ["v1","v2"]}}

      { "a1":"v1","a2":7,"a3":8.0,"a4": {"a41":"v41","a42": ["v1","v2"]}}

      $.a1

      v1

      { "a1":"v1","a2":7,"a3":8.0,"a4": {"a41":"v41","a42": ["v1","v2"]}}

      $.a4

      {"a41":"v41","a42": ["v1","v2"]}

      { "a1":"v1","a2":7,"a3":8.0,"a4": {"a41":"v41","a42": ["v1","v2"]}}

      $.a4.a42

      ["v1","v2"]

      { "a1":"v1","a2":7,"a3":8.0,"a4": {"a41":"v41","a42": ["v1","v2"]}}

      $.a4.a42[0]

      v1

KEY_VALUE

  • 功能描述

    获取键值对字符串中某一个key对应的值。

  • 语法
    VARCHAR KEY_VALUE(VARCHAR content, VARCHAR split1, VARCHAR split2, VARCHAR key_name)
  • 参数说明
    • content:输入字符串。
    • split1:多个键值对分隔符。
    • split2:key/value分隔符。
    • key_name:要获取的键名称。
  • 示例
    • 测试语句
      SELECT KEY_VALUE(content, split1, split2, key_name)  AS case_result FROM T1;
    • 测试数据和结果
      表10 测试数据和结果

      测试数据(content, split1, split2, key_name)

      测试结果(case_result)

      k1=v1;k2=v2

      ;

      =

      k1

      v1

      null

      ;

      =

      k1

      null

      k1=v1;k2=v2

      null

      =

      k1

      null

LOWER

  • 功能描述

    返回小写字符的字符串。

  • 语法
    VARCHAR LOWER(A)
  • 参数说明
    • A:字符串。
  • 示例
    • 测试语句
      SELECT LOWER(var1) AS aa FROM T1;
    • 测试数据和结果
      表11 测试数据和结果

      测试数据(var1)

      测试结果(aa)

      ABc

      abc

LPAD

  • 功能描述

    将pad字符串拼接到str字符串的的左端,直到新的字符串达到指定长度len为止。

  • 语法
    VARCHAR LPAD(VARCHAR str, INT len, VARCHAR pad)
  • 参数说明
    • str:拼接前的字符串。
    • len:拼接后的字符串的长度。
    • pad:被拼接的字符串。
    说明:
    • 任意参数为null时返回null。
    • len为负数时返回为null。
    • len不大于str长度时,返回str裁剪为len长度的字符串。
  • 示例
    • 测试语句
      SELECT
        LPAD("adc", 2, "hello"),
        LPAD("adc", -1, "hello"),
        LPAD("adc", 10, "hello");
    • 测试结果
      "ad",,"helloheadc"

MD5

  • 功能描述

    返回字符串的MD5值。如果参数为空串(即参数为")时,则返回空串。

  • 语法
    VARCHAR MD5(VARCHAR str)
  • 参数说明
    • str:字符串
  • 示例
    • 测试语句
      SELECT MD5("abc");
    • 测试结果
      "900150983cd24fb0d6963f7d28e17f72"

OVERLAY

  • 功能描述

    用y替换x的子串。从start_position开始,替换length+1个字符。

  • 语法
    VARCHAR OVERLAY ( (VARCHAR x PLACING VARCHAR y FROM INT start_position [ FOR INT length ]) )
  • 参数说明
    • x:字符串。
    • y:字符串。
    • start_position:起始位置。
    • length(可选):字符长度。
  • 示例
    • 测试语句:
      OVERLAY('abcdefg' PLACING 'xyz' FROM 2 FOR 2) AS result FROM T1;
    • 测试结果:
      表12 测试结果

      result

      axyzdefg

POSITION

  • 功能描述

    返回目标字符串x在被查询字符串y里第一次出现的位置。如果目标字符串x在被查询字符串y中不存在,返回值为0。

  • 语法
    INTEGER POSITION(x IN y)
  • 参数说明
    • x:字符串。
    • y:字符串。
  • 示例
    • 测试语句:
      POSITION('in' IN 'chin') AS result FROM T1;
    • 测试结果
      表13 测试结果

      result

      3

REPLACE

  • 功能描述

    字符串替换函数,将字符串str1中的所有str2替换成str3。

  • 语法
    VARCHAR REPLACE(VARCHAR str1, VARCHAR str2, VARCHAR str3)
  • 参数说明
    • str1:原字符。
    • str2:目标字符。
    • str3:替换字符。
  • 示例
    • 测试语句:
      SELECT
        replace(
          "hello world hello world hello world",
          "world",
          "hello"
        );
    • 测试结果
      "hello hello hello hello hello hello"

RPAD

  • 功能描述

    将pad字符串拼接到str字符串的的右端,直到新的字符串达到指定长度len为止。

    • 如果任意参数为null时,则返回null。
    • len为负数时,返回为null。
    • pad为空串,如果len小于str长度,返回str裁剪为len长度的字符串。
  • 语法
    VARCHAR RPAD(VARCHAR str, INT len, VARCHAR pad)
  • 参数说明
    • str:起始的字符串。
    • len:新的字符串的长度。
    • pad:需要重复补充的字符串。
  • 示例
    • 测试语句
      SELECT
        RPAD("adc", 2, "hello"),
        RPAD("adc", -1, "hello"),
        RPAD("adc", 10, "hello");
    • 测试结果
      "ad",,"adchellohe"

SHA1

  • 功能描述

    返回字符串expr的SHA1值。

  • 语法
    STRING SHA1(STRING expr)
  • 参数说明
    • expr:字符串。
  • 示例
    • 测试语句
      SELECT SHA1("abc");
    • 测试结果
      "a9993e364706816aba3e25717850c26c9cd0d89d"

SHA256

  • 功能描述

    返回字符串expr的SHA256值。

  • 语法
    STRING SHA256(STRING expr)
  • 参数说明
    • expr:字符串。
  • 示例
    • 测试语句
      SELECT SHA256("abc");
    • 测试结果
      "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"

STRING_TO_ARRAY

  • 功能描述

    将字符串value按delimiter分隔为字符串数组。

    说明:

    delimiter使用的是java的正则表达式,若使用特殊字符则需要转义。

  • 语法
    ARRAY[String] STRING_TO_ARRAY(STRING value, VARCHAR delimiter)
  • 参数说明
    • value:字符串。
    • delimiter:分隔符。
  • 示例
    • 测试语句
      SELECT
        string_to_array("127.0.0.1", "\\."),
        string_to_array("red-black-white-blue", "-");
    • 测试结果
      [127,0,0,1],[red,black,white,blue]

SUBSTRING

  • 功能描述

    返回从指定位置开始的A的子字符串。起始位置从1开始。

    • 如果未指定len,则截取从位置start开始,到字符串结尾的子字符串。
    • 如果指定len,则截取从位置start开始,长度为len的子字符串。
    说明:

    start从1开始,start为0时当1看待,为负数时表示从字符串末尾倒序计算位置。

  • 语法
    VARCHAR SUBSTRING(STRING A FROM INT start) 

    VARCHAR SUBSTRING(STRING A FROM INT start FOR INT len)
  • 参数说明
    • A:指定的字符串。
    • start:在字符串A中开始截取的位置。
    • len:截取的长度。
  • 示例
    • 测试语句1
      SELECT SUBSTRING("123456" FROM 2);
    • 测试结果1
      "23456"
    • 测试语句2
      SELECT SUBSTRING("123456" FROM 2 FOR 4);
    • 测试结果2
      "2345"

TRIM

  • 功能描述

    从B中除去字符串首尾/首位/末尾的A。默认情况下,首尾的A都被删除。

  • 语法
    STRING TRIM( { BOTH | LEADING | TRAILING } STRING a FROM STRING b)
  • 参数说明
    • a:字符串。
    • b:字符串。
  • 示例
    • 测试语句
      SELECT TRIM(BOTH " " FROM "  hello world  ");
    • 测试结果
      "hello world"

UPPER

  • 功能描述

    返回转换为大写字符的字符串。

  • 语法
    VARCHAR UPPER(A)
  • 参数说明
    • A:字符串。
  • 示例
    • 测试语句
      SELECT UPPER("hello world");
    • 测试结果
      "HELLO WORLD"

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容