SQLServer从输入字符串中移除所有非数字和非小数点的字符

news/2024/10/18 10:08:56/

先上函数

Create FUNCTION [dbo].[clear_num](@s VARCHAR(100))
RETURNs VARCHAR(100)
as
BEGIN
WHILE PATINDEX('%[^0-9.]%', @s)>=1
BEGINset @s=replace(@s,SUBSTRING(@s,PATINDEX('%[^0-9.]%', @s),1),'');
END
RETURN(@s)
END

这个函数通过循环检查字符串中的每个字符,如果字符不是数字(0-9)或小数点(.),则将其移除。

函数解释

  1. 函数定义

    • 函数名为[dbo].[clear_num]
    • 接受一个VARCHAR(100)类型的参数@s
    • 返回一个VARCHAR(100)类型的结果。
  2. 循环移除非数字和非小数点字符

    • 使用WHILE循环,条件为PATINDEX('%[^0-9.]%', @s)>=1,意味着只要字符串中还存在非数字或非小数点的字符,循环就继续。
    • 在循环内部,使用REPLACE函数结合SUBSTRINGPATINDEX来定位并移除第一个匹配的非数字或非小数点字符。
  3. 返回结果

    • 循环结束后,使用RETURN(@s)返回处理后的字符串。

示例用法

假设您有一个字符串'abc123.45xyz',调用这个函数会返回'123.45'

DECLARE @result VARCHAR(100);
SET @result = dbo.clear_num('abc123.45xyz');
SELECT @result AS CleanedString;

注意事项

  • 确保输入字符串的长度不会超过100个字符,因为函数的参数和返回类型都被定义为VARCHAR(100)
  • 如果输入字符串可能包含非常特殊或不可见的字符,这个函数仍然能够处理,但性能可能会受到影响。
  • 如果需要处理更长的字符串或更复杂的字符集(如处理负数、千位分隔符等),可能需要对函数进行进一步的修改。

http://www.ppmy.cn/news/1539969.html

相关文章

HTTP vs WebSocket

本文将对比介绍HTTP 和 WebSocket ! 相关文章: 1.HTTP 详解 2.WebSocket 详解 一、HTTP:请求/响应的主流协议 HTTP(超文本传输协议)是用于发送和接收网页数据的标准协议。它最早于1991年由Tim Berners-Lee提出来&…

HarmonyOS NEXT开发 ArkTS自定义组件

摘要 在HarmonyOS中,ArkTS提供了创建自定义组件的能力,允许开发者封装和复用UI代码。以下是关于自定义组件的详细介绍,包括创建自定义组件、页面和自定义组件的生命周期、自定义组件的自定义布局、冻结功能,以及代码案例分析。 …

Linux内核 -- IPI 中断的作用与用法

Linux IPI 中断的作用与用法 1. IPI0 的作用与用法 在 Linux 系统中,IPI(Inter-Processor Interrupt)是一种用于多核处理器之间通信的中断,常用于多核系统中的同步和协调操作。IPI0 是其中一种常见的 IPI,其作用和用…

zynq 的 sdk 库重新加载硬件程序后 lwip库找不到的处理方法

ps 的工程名->c/c build setting ->software platform->添加-llwip4 即可

《深度学习》Dlib、OpenCV 关键点定位 原理及案例解析

目录 一、关键点定位 1、什么是关键点定位 2、步骤 1)加载预训练的人脸检测器 2)加载预训练的关键点检测器 3)读取图像 4)检测人脸 5)关键点检测 6)可视化关键点 7)显示图像 二、案例…

LINUX (s-nail)定时发邮件

作业要求 在linux主机通过定时任务指定在每天12:12分定时发送邮件;邮件内容自定。 ssh 192.168.169.128 [rootlocalhost ~]# mount /dev/sr0 /mnt [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [BaseOS] nameBaseOS baseurlfile:///mnt/BaseOS gpgcheck0 […

DNS:互联网域名系统的核心

什么是 DNS? DNS(Domain Name System,域名系统)是互联网的一项基础服务,它负责将人类容易记忆的域名(如 www.example.com)转换成计算机可以识别的 IP 地址(如 192.0.2.1&#xff09…

Flume面试整理-配置文件格式

Apache Flume的配置文件采用简单的文本格式来定义和配置Source(源)、Channel(通道)和Sink(汇),以实现数据流的管理。配置文件通常以.conf为扩展名,每个配置文件定义一个或多个Flume Agent的属性和行为。以下是Flume配置文件格式的详细介绍: Flume配置文件的基本结构 一…