当前位置:网站首页>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'
边栏推荐
猜你喜欢
OLED的HAL库代码介绍及使用(stm32f1/I2C/HAL库版/100%一次点亮)
2022年8月初济南某外包公司全栈开发面试题整理
使用mosquitto过程中的问题解决
Multithreading (Basic) - 40,000 word summary
AlphaFold又放大招,剑指整个生物界!
多线程(基础) - 4万字总结
Mysql transaction isolation level and MVCC (multi-version concurrency control)
What is the future of smartwatches?
保姆级教程:写出自己的移动应用和小程序(篇二)
5G基础学习1、5G网络架构、网络接口及协议栈
随机推荐
看我如何用多线程,帮助运营小姐姐解决数据校对系统变慢!
WPF 截图控件之文字(七)「仿微信」
bgp与mpls综合实验
Oracle降低高水位
npm run serve启动报错npm ERR Missing script “serve“
5G基础学习1、5G网络架构、网络接口及协议栈
循环结构--do-while循环
初探zend引擎
从幻核疑似裁撤看如何保证NFT的安全
开箱即用-使用异步加载布局来优化页面启动速度的几种方案
配置mysql失败了,这是怎么回事呢?
循环结构--while循环
Challenge LeetCode1000 questions in 365 days - Day 047 Design Circular Queue Circular Queue
LeetCode每日一练 —— 20. 有效的括号
一体化在线政务服务平台,小程序容器技术加速建设步伐
使用kubesphere图形界面创建一个应用操作流程
idea常用插件
受邀出席Rust开发者大会|Rust如何助力量化高频交易?
关于#oracle#的问题,如何解决?
ansible module --yum module