Sql Server REPLACE函数的使用

REPLACE
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。

语法
REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )

参数
''string_replace1''

待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。

''string_replace2''

待查找的字符串表达式。string_replace2 可以是字符数据或二进制数据。

''string_replace3''

替换用的字符串表达式。string_replace3 可以是字符数据或二进制数据。

返回类型
如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。

示例
下例用 xxx 替换 abcdefghi 中的字符串 cde。

SELECT REPLACE(''abcdefghicde'',''cde'',''xxx'')GO
下面是结果集:

------------abxxxfghixxx(1 row(s) affected)

语法格式:PATINDEX ( '%pattern%' , expression )

返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始算。

pattern字符串在expression表达式里没找就返回0,对所有有效的文本和字符串就是有效的数据类型。

描述一下此函数的具体用法:

1. PATINDEX ( '%pattern%' , expression )

'%pattern%'的用法类似于 like '%pattern%'的用法,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出现的位置。

如:

select patindex('�b%','abcaabbeeabb')

结果5,也就是abb第一次出现的位置。

2.PATINDEX ( '%pattern' , expression )

'%pattern' 类似于 like '%pattern'的用法,前面用模糊查找,也就是查找pattern的结束所在expression的位置,也就是从后面匹配起查找。

如:

select patindex('�b','abcaabbeeabb')

返回10,也就是abb在后面第一次出现的位置。

select patindex('�b','abcaabbeeabbr')

返回0,后面的第一个字母r和abb不匹配,所以返回0

3.PATINDEX ( 'pattern%' , expression )

'pattern%'类似于 like 'pattern%'也就前面用精确查找,后面模糊查找,也就相当于查询pattern首次出现的位置。

如:

select patindex('abb%','abbcaabbeeabb')

返回1,也就相当于起始值

select patindex('abb%','arbbcaabbeeabb')

返回0,开头找不到就返回0,后面无论有多少都不管。

4.PATINDEX ( 'pattern' , expression )

这就相当于精确匹配查找,也就是pattern,expression完全相等。

如:

select patindex('abb','abb')

返回1,完全相等

select patindex('abb','abbr')

返回0,不完全相等

5. patindex('%[pattern]%','ddabcaabbeeabbr'),

patindex('%[^pattern]%','ddabcaabbeeabbr')

在此先说[]的用法,[]是指定某些特殊的字符。[^]除[]之外的字符串,[]这其中的每一个。

如:

Symbol Meaning

LIKE '5[%]' 5%

LIKE '[_]n' _n

LIKE '[a-cdf]' a, b, c, d, or f

LIKE '[-acdf]' -, a, c, d, or f

LIKE '[ [ ]' [

LIKE ']' ]

LIKE 'abc[_]d%' abc_d and abc_de

LIKE 'abc[def]' abcd, abce, and abcf

如:

select patindex('%[d]%','rcrdsddddaadadffdr')

返回4,[]中d在字符串rcrdsddddaadadffdr的第一次出现的位置。

select patindex('%[cd]%','rcrdsdddrdaadadffdr')

返回2,[]中c,d在其中一个的位置,返回最先出现的这个位置,c在此字符串里第一次出现位置是2,而d是4,结果取最先的那个。

select patindex('%[sd]%','rcrdsdddrdaadadffdr')

返回4,[]中c,d在其中一个的位置,返回最先出现的这个位置,s在此字符串里第一次出现位置是5,而d是4,结果取最先的那个。

select patindex('%[^r]%','rrrdsdddrdaadadffdr')

返回4,除[]中的字符串的匹配字符,第一次出现d不在[^r]里,所以就找到第一次这位。

select patindex('%[^rd]%','rrrdsdddrdaadadffdr')

返回5,除[]中的字符串的匹配字符,第一次出现s不在[^rd]里,所以就找到第一次这位。

select patindex('%[^rsd]%','rrrdsdddrdaadadffdr')

返回11,除[]中的字符串的匹配字符,第一次出现a不在[^rsd]里,所以就找到第一次这位。

转载于:https://www.cnblogs.com/yuhuameng/p/5221200.html

Sql Server REPLACE函数的使用;SQL中 patindex函数的用法相关推荐

  1. sql server 数组_如何在SQL Server中实现类似数组的功能

    sql server 数组 介绍 (Introduction) I was training some Oracle DBAs in T-SQL and they asked me how to cr ...

  2. 在SQL Server Management Studio(SSMS)中调试存储过程

    Debugging is one of the most important but painful parts of any software process. To find some error ...

  3. sql server只读_如何在SQL Server 2016中为可用性组配置只读路由

    sql server只读 The SQL Server Always On Availability Groups concept was introduced the first time in S ...

  4. SQL Server里的 ISNULL 与 Oracle 中的 NULLIF

    SQL Server里的 ISNULL 与 Oracle 中的 NULLIF不同: SQL Server 中有两个参数,语法:     ISNULL(check_expression, replace ...

  5. sql server 按照日期自动生成单据编号的函数

    一.sql server 按照日期自动生成单据编号的函数,格式为##08080001,##表示打头的单据字符,然后是年月和流水编号. 二.传入的参数为单据的打头字符和生成单据的日期 三.一般的调用格式 ...

  6. 报错:此版本的SQL Server Data Tools与此计算机中安装的数据库运行时组件不兼容...

    在Visual Studio 2012中使用Entity Framework,根据模型生成数据库时,报如下错误: 无法在自定义编辑器中打开Transact-SQL文件 此版本的SQL Server D ...

  7. sql server死锁_如何解决SQL Server中的死锁

    sql server死锁 In this article, we will talk about the deadlocks in SQL Server, and then we will analy ...

  8. sql2012 ssrs_您必须在SQL Server Reporting Services(SSRS)中记录的十件事

    sql2012 ssrs Documentation is never fun. I curse having to do it and I curse the person who didn't d ...

  9. sql server 并发_并发问题– SQL Server中的理论和实验

    sql server 并发 介绍 (Introduction) Intended audience 目标听众 This document is intended for application dev ...

最新文章

  1. mime设置 压缩html,MIME设置功能
  2. 怎样快速画出一个正方体_人教版小学数学五年级下册 长方体和正方体的体积 教案、课件,公开课视频...
  3. 路由选项卡_M32全面培训第四讲——路由配置
  4. OSX 挂载 NTFS 格式硬盘
  5. 实现根据条件删除_常见数据结构的实现(一):跳跃表
  6. .NET 应用如何优雅的做功能开关(Feature Flag)
  7. vue 打开一个iframe_Vue 之五 —— 单元测试
  8. Construct Maximum Binary Tree
  9. OpenLayers坐标转换
  10. 遥感NDVI估算植被覆盖度
  11. PM2.5数据的清洗,汇总与制作散点图(含源数据链接)
  12. 微软Windows 11官方超高清4K壁纸提前放出,免费下载
  13. 华为手机克隆在哪个文件夹_华为手机克隆软件怎么使用?手机克隆APP操作步骤以及下载地址详细介绍[多图]...
  14. AppStore算法再次升级,运营如何在ASO中破冰?
  15. 苹果照片未删却不见了_手机删除的照片如何恢复?不得不说这方法好!
  16. 2021最新华为Android校招面试题,附答案
  17. 基于python的国内外研究现状怎么写_毕业论文中的国内外研究现状怎么写啊
  18. 华为ENSP之MPLS V HubSpoke架构
  19. [附源码]Node.js计算机毕业设计大众点评管理系统Express
  20. “人不知而不愠”-当别人不理解我们时,怎样保持好心情?

热门文章

  1. 使用IDEA完成支付宝开放平台的Demo测试
  2. Nodeparty-SZ-1 深圳聚会活动回顾总结[2012.01.08] - CNode
  3. 四轴飞行前检查及解锁
  4. linux入门学习(3权限管理)
  5. 运用Java获取当前时间
  6. Shading 编程
  7. 用生物知识解读“新冠病毒”,生物竞赛、高考考点,先马后看!
  8. Linux arping命令测试IP地址冲突
  9. Telnet服务配置
  10. 如何从GitHub中下载别人的代码