当前位置:网站首页>SQL函数 $TRANSLATE
SQL函数 $TRANSLATE
2022-08-02 11:20:00 【用户7741497】
SQL函数 $TRANSLATE
执行逐字符替换的字符串函数。
大纲
$TRANSLATE(string,identifier[,associator])参数
string- 目标字符串。它可以是字段名称、文字、主机变量或 SQL 表达式。identifier- 要在字符串中搜索的字符。它可以是字符串或数字文字、主变量或 SQL 表达式。associator- 可选 — 与标识符中的每个字符对应的替换字符。它可以是字符串或数字文字、主变量或 SQL 表达式。
描述
$TRANSLATE 函数在返回值字符串中执行逐字符替换。它一次处理一个字符的字符串参数。它将字符串中的每个字符与标识符参数中的每个字符进行比较。如果 $TRANSLATE 找到匹配项,它会记下该字符的位置。
$TRANSLATE的双参数形式从输出字符串中删除标识符参数中的所有字符实例。$TRANSLATE的三参数形式将在字符串中找到的每个标识符字符的所有实例都替换为位置对应的关联字符。替换是基于字符而不是字符串执行的。如果标识符参数包含的字符多于关联参数,则从输出字符串中删除标识符参数中多余的字符。如果标识符参数包含的字符少于关联参数,则忽略关联参数中多余的字符。
$TRANSLATE 区分大小写。
$TRANSLATE 不能用于将 NULL 替换为字符。
如果指定的参数太少,则会发出 SQLCODE -380。如果指定的参数过多,则会发出 SQLCODE -381。
$TRANSLATE and REPLACE
$TRANSLATE 执行逐字符匹配和替换。 REPLACE 执行字符串对字符串的匹配和替换。 REPLACE 可以用另一个子字符串替换一个或多个字符的单个指定子字符串,或删除指定子字符串的多个实例。 $TRANSLATE 可以用相应的指定替换字符替换多个指定字符。
默认情况下,这两个函数都区分大小写,从字符串的开头开始,并替换所有匹配的实例。 REPLACE 具有可用于更改这些默认值的参数。
示例
在以下示例中,两个参数 $TRANSLATE 通过删除标点符号(逗号、空格、句点、撇号、连字符)来修改名称值,返回仅包含字母字符的名称。请注意,标识符将撇号加倍以将其转义为文字字符,而不是字符串分隔符:
SELECT TOP 20 Name,$TRANSLATE(Name,', .''-') AS AlphaName
FROM Sample.Person
WHERE Name %STARTSWITH 'O'在以下示例中,三参数 $TRANSLATE 通过将逗号和空格替换为插入符号 (^) 字符来修改名称值,返回以三部分分隔的名称(姓氏、名字、中间名首字母)。请注意,关联者必须指定“^”的次数与标识符中的字符数一样多:
SELECT TOP 20 Name,$TRANSLATE(Name,', ','^^') AS PiecesNamePunc
FROM Sample.Person
WHERE Name %STARTSWITH 'O'在以下示例中,三参数 $TRANSLATE 通过将逗号和空格替换为脱字符 (^) 字符(在标识符和关联符中指定)和删除句点、撇号和连字符(在标识符中指定,从关联人):
SELECT TOP 20 Name,$TRANSLATE(Name,', .''-','^^') AS PiecesNameNoPunc
FROM Sample.Person
WHERE Name %STARTSWITH 'O'边栏推荐
猜你喜欢
随机推荐
Oracle超全SQL,细节狂魔
Breaking the Boundary, Huawei's Storage Journey
图形处理单元(GPU)的演进
如何在技术上来保证LED显示屏质量?
ssm web page access database data error
LeetCode每日一练 —— 225. 用队列实现栈
细学常用类,集合类,IO流
yolo格式(txt)数据集转VOC(xml)
5G基础学习1、5G网络架构、网络接口及协议栈
5G网络切片技术
The sitcom "Re-Walking the Long March" was staged
leetcode: 200. Number of islands
保姆级教程:写出自己的移动应用和小程序(篇二)
JSP中如何正确的填写include指令中的file路径呢?
情景剧《重走长征路》上演
MapStruct
8大软件供应链攻击事件概述
翁恺C语言程序设计网课笔记合集
Oracle 19c 连接PDB
ansible模块--yum模块









