文章目录

  • 第116章 SQL函数 REPLACE
  • 大纲
  • 参数
  • 描述
  • REPLACE, STUFF, and $TRANSLATE
  • 示例

第116章 SQL函数 REPLACE

字符串函数,用于替换字符串中的子字符串。

大纲

REPLACE(string,oldsubstring,newsubstring)

参数

  • string - 作为子字符串搜索目标的字符串表达式。
  • oldsubstring - 字符串中要匹配的子字符串。
  • newsubstring - 用于替换 oldsubstring 的子字符串。

描述

REPLACE 在字符串中搜索子字符串并替换所有匹配项。匹配区分大小写。如果找到匹配项,它将用 newsubstring 替换 oldsubstring 的每个实例。替换子串可能比它替换的子串长或短。如果找不到子字符串,则 REPLACE 将原样返回原字符串。

无论字符串的数据类型如何,REPLACE 返回的值始终是数据类型 VARCHAR。这允许替换操作,例如 REPLACE(12.3,'.','_')

REPLACE 不能对字符串、oldsubstringnewsubstring 参数使用 %Stream.GlobalCharacter 字段。尝试这样做会生成 SQLCODE -37 错误。

空字符串是字符串值。因此,可以将空字符串用于任何参数值。但是,请注意 ObjectScript 空字符串作为 NULL 传递给 SQL

NULL 不是 SQL 中的数据值。因此,为任何 REPLACE 参数指定 NULL 将返回 NULL,无论是否发生匹配。

此函数提供与 Transact-SQL 实现的兼容性。

REPLACE, STUFF, and $TRANSLATE

REPLACESTUFF 都执行子字符串替换。 REPLACE 按数据值搜索子字符串。 STUFF 按字符串位置和长度搜索子字符串。

REPLACE 执行单个字符串对字符串的匹配和替换。 $TRANSLATE 执行逐字符匹配和替换;它可以用相应的指定替换单个字符替换一个或多个指定单个字符的所有实例。它还可以从字符串中删除一个或多个指定单个字符的所有实例。

默认情况下,所有三个函数都区分大小写并替换所有匹配的实例。

示例

以下示例搜索子字符串“P”的每个实例并将其替换为子字符串“K”

SELECT REPLACE('PING PONG','P','K')KING KONG

以下嵌入式 SQL 示例搜索子字符串“KANSAS”的每个实例,并将其替换为子字符串“NEBRASKA”

/// d ##class(PHA.TEST.SQLFunction).Replace()
ClassMethod Replace()
{s str = "KANSAS, ARKANSAS, NEBRASKA"&sql(SELECT REPLACE(:str,'KANSAS','NEBRASKA') INTO :x)w !,"SQLCODE=",SQLCODEw !,"Output string=",x
}
DHC-APP>d ##class(PHA.TEST.SQLFunction).Replace()
SQLCODE=0
Output string=NEBRASKA, ARNEBRASKA, NEBRASKA

以下示例显示 REPLACE 处理空字符串 ('') 就像处理任何其他字符串值一样:

SELECT REPLACE('','','Nothing'),REPLACE('PING PONG','','K'),REPLACE('PING PONG','P','')Nothing PING PONG   ING ONG

以下示例显示 REPLACE 通过返回 NULL 来处理任何 NULL 参数。以下所有 REPLACE 函数都返回 NULL,包括最后一个,其中不发生匹配:

SELECT REPLACE(NULL,'K','P'),REPLACE(NULL,NULL,'P'),REPLACE('PING PONG',NULL,'K'),REPLACE('PING PONG','P',NULL),REPLACE('PING PONG','Z',NULL)NULL NULL NULL NULL NULL

以下嵌入式 SQL 示例与前面的 NULL 示例相同。它显示了如何在 SQL 中将 ObjectScript 空字符串主变量视为 NULL

/// d ##class(PHA.TEST.SQLFunction).Replace1()
ClassMethod Replace1()
{s a = ""&sql(SELECT REPLACE(:a,'K','P'),REPLACE(:a,:a,'P'),REPLACE('PING PONG',:a,'K'),REPLACE('PING PONG','P',:a),REPLACE('PING PONG','Z',:a)INTO :v,:w,:x,:y,:z)w !,"SQLCODE=",SQLCODEw !,"Output string=",vw !,"Output string=",ww !,"Output string=",xw !,"Output string=",yw !,"Output string=",z
}
DHC-APP>d ##class(PHA.TEST.SQLFunction).Replace1()SQLCODE=0
Output string=
Output string=
Output string=
Output string=
Output string=

第116章 SQL函数 REPLACE相关推荐

  1. 第134章 SQL函数 STUFF

    文章目录 第134章 SQL函数 STUFF 大纲 参数 描述 REPLACE 和 STUFF 示例 第134章 SQL函数 STUFF 字符串函数,用于替换字符串中的子字符串. 大纲 STUFF(s ...

  2. 第148章 SQL函数 $TRANSLATE

    文章目录 第148章 SQL函数 $TRANSLATE 大纲 参数 描述 $TRANSLATE and REPLACE 示例 第148章 SQL函数 $TRANSLATE 执行逐字符替换的字符串函数. ...

  3. 第四十六章 SQL函数 DAY

    文章目录 第四十六章 SQL函数 DAY 大纲 参数 描述 第四十六章 SQL函数 DAY 返回日期表达式的月份日期的日期函数. 大纲 DAY(date-expression){fn DAY(date ...

  4. 第153章 SQL函数 UCASE

    文章目录 第153章 SQL函数 UCASE 大纲 参数 描述 示例 第153章 SQL函数 UCASE 将字符串中的所有小写字母转换为大写字母的大小写转换函数. 大纲 UCASE(string-ex ...

  5. 第二十四章 SQL函数 CEILING

    文章目录 第二十四章 SQL函数 CEILING 大纲 参数 描述 示例 第二十四章 SQL函数 CEILING 数值函数,返回大于或等于给定数值表达式的最小整数. 大纲 CEILING(numeri ...

  6. 第九十五章 SQL函数 MINUTE

    文章目录 第九十五章 SQL函数 MINUTE 大纲 参数 描述 示例 第九十五章 SQL函数 MINUTE 返回日期时间表达式的分钟的时间函数. 大纲 {fn MINUTE(time-express ...

  7. 第130章 SQL函数 SQRT

    文章目录 第130章 SQL函数 SQRT 大纲 参数 描述 示例 第130章 SQL函数 SQRT 返回给定数值表达式的平方根的数值函数. 大纲 SQRT(numeric-expression){f ...

  8. 第二十三章 SQL函数 CAST(二)

    文章目录 第二十三章 SQL函数 CAST(二) 转换位值 示例 第二十三章 SQL函数 CAST(二) 转换位值 可以将expr值转换为BIT以返回0或1. 如果expr为1或任何其他非零数值,则返 ...

  9. 第九十四章 SQL函数 %MINUS

    文章目录 第九十四章 SQL函数 %MINUS 大纲 参数 描述 示例 第九十四章 SQL函数 %MINUS 将数字转换为规范整理格式,然后反转符号的整理函数. 大纲 %MINUS(expressio ...

最新文章

  1. MR-CNN网络结构
  2. matlab ga rbf,GA PSO优化的RBF神经网络
  3. ROS2学习(三).ROS2环境配置
  4. (王道408考研数据结构)第五章树-第三节3:线索二叉树
  5. MySQL系列:数据类型、运算符及函数(5)
  6. vscode 新版eslint自动修复_程序员请收好:10 个实用的 VS Code 插件
  7. apache php设置404页面,详细介绍通过配置Apache实现404页面替换
  8. Python 成数据科学家首选语言
  9. 大数据平台由哪些分析功能
  10. consul docker register
  11. OpenGL ES总结(五)OpenGL ES中pipeLine机制
  12. ios网络编程(二)之网络连接
  13. 【华为机试】—— 12字符串反转
  14. ThinkPHP截取部分文章文字、字符串
  15. 呼吸灯程序(非阻塞)
  16. oc渲染器实时预览用的是编辑器细分,不是渲染器细分。
  17. 一种简易的直流电机正反转限位电路
  18. css不同大小字体底部对齐
  19. 常见定位技术有哪些?
  20. 火狐浏览器设置字符编码格式

热门文章

  1. Pytorch入门之张量tensor
  2. 2010年河北省对口升学计算机试题及答案,2011河北省对口升学计算机考试A卷
  3. 许奔创新社-第24问:如何对创意进行清单革命
  4. Scala进阶_伴生对象
  5. 高校房地产管理系统可以管理高校哪类房产?
  6. 【韩老师零基础30天学会Java 09】Math Arrays 数组拷贝 自然排序 System BigDecimal 银行家算法舍入 日期类LocalDateTime转换 String翻转
  7. 二手车价格预测---数据分析
  8. Hadoop之MapReduce学习笔记(二)
  9. 蚂蚁网商银行内推Java岗4+1面,持续26天,成功上岸,斩获offer
  10. mysql添加用户和赋予权限