(转)在SQL中取出字符串中数字部分或在SQL中取出字符部分

摘要:
最近,在开发一个项目时,需要在百度搜索之后,通过去掉中间的数字部分来对包含数字的字符串进行排序。根据项目要求,准备了一个用户定义的SQL函数用于项目/******对象:UserDefinedFunction[dbo]。[F_Get_No]脚本日期:2013年10月18日22:03:13******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOcreatefunction[dbo]。[F_Get_No]RETURNSbigintASBEGINWHILEPATINDEX˃0BEGINSET@No=STUFF—删除非数字字符,循环结束。在解决了数字部分ENDRETURNCONVERTUNDViewCode项目中的问题后,我考虑了如果只取字符串中的字符部分,如何处理它。修改后,按如下方式修改以生成另一个SQL用户定义函数。

近来在开发一个项目时,一包含数字的字符串,需要取出中间的数字部分进行排序.经过baidu搜索。并结合自己项目的需求,编写了一个自定义的SQL函数用供项目中使用。

(转)在SQL中取出字符串中数字部分或在SQL中取出字符部分第1张(转)在SQL中取出字符串中数字部分或在SQL中取出字符部分第2张
/****** Object:  UserDefinedFunction [dbo].[F_Get_No]    Script Date: 10/18/2013 22:03:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


create  function [dbo].[F_Get_No] 
( 
@No varchar(100) 
) 
RETURNS bigint 
AS 
BEGIN 
WHILE PATINDEX('%[^0-9]%',@No)>0 
BEGIN 
SET @No=STUFF(@No,PATINDEX('%[^0-9]%',@No),1,'') --删掉一个非数字的字符,循环结束,剩余的为数字部分
END 
RETURN CONVERT(bigint,@No) 
END
View Code

项目中的问题解决后,反过来思考了一下如果只取出字串中的字符部分,又如何处理呢。经过修改,修改如下,生成另一个SQL自定义函数。

(转)在SQL中取出字符串中数字部分或在SQL中取出字符部分第3张(转)在SQL中取出字符串中数字部分或在SQL中取出字符部分第4张
create  function [dbo].[F_GetChar]

(

@No varchar(100)

)

RETURNS varchar(100)

AS

BEGIN

WHILE PATINDEX('%[^A-Za-z]%',@No)>0

BEGIN

SET @No=STUFF(@No,PATINDEX('%[^A-Za-z]%',@No),1,'') --删掉一个非数字的字符,循环结束,剩余的为数字部分

END

RETURN CONVERT(varchar(100),@No)

END

 

--select dbo.F_GetChar('wwww23')
View Code

以上调用自定义函数时都必须前面带dbo.

免责声明:文章转载自《(转)在SQL中取出字符串中数字部分或在SQL中取出字符部分》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇2019学期第一周编程总结ES入门 (3) 语法(1)DDL(1) 索引操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

linux 安装nginx

1.检查服务器上是否安装了nginx:nginx v2。查看编译参数:nginxv3。查看安装目录:rpm-qlnginx4。查看配置文件:/etc/logrotate D/nginx5。在安装nginx之前,请确保系统中安装了gcc、pcre-devel、zlib-devel和openssl-devel。5.1如果安装了rpm软件包,您可以使用rpm qa...

【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数

前言本博客首先介绍了模拟过程中使用的一些关键概念,然后介绍了有助于调试模拟脚本的常见技术:日志、命令行参数。Ns-3不是一个特殊的互联网模拟器,而是一个网络模拟器。在ns-3的仿真环境中,节点可以连接到表示数据交换通道的对象。这里,基本通信子网的抽象概念被称为信道,由C++中的channel类描述。在ns-3中,网络设备的抽象概念相当于硬件设备和软件驱动程序...

记一次Arcgis Server10.2许可过期导致发布图层失败

1.今天,当使用arcmap将地图服务发布到arcgisserver时,发布突然失败。在arcgisserver的管理页面的日志选项中发现错误:未能初始化服务器对象“System/PublicingTools”:0x80004005:错误:(-8003)YourArcGISServerlicense已过期。2.然后在服务器路径中查找文件:...

vue 获取元素高度

1、html2、JavaScript//获取高度值(内容高+padding+边框)letheight=this.$refs.getheight.offsetHeight;//获取元素样式值(存在单位)letheight=window.getComputedStyle(this.$refs.getheight).height;//获...

如何修改cmd控制台默认编码为utf-8

如何修改cmd控制台默认编码为utf-81.打开cmd窗口后,在窗口顶部右击选择属性,选中选项后会看到默认编码为gbk2.然后我们在默认窗口路径内,输入chcp命令后回车936就表示gbk编码3.然后在窗口中输入chcp65001,然后回车,即可看到窗口默认编码为utf-8编码了(65001代表utf-8编码)4.上面的方法每次都要重新设置,接下来的方法是永...

Windows系统下MySQL添加到系统服务方法(mysql解压版)

您可能感兴趣的文章:Windows7中配置安装MySQL5.6解压缩版windows下安装、卸载mysql服务的方法Mysql5.7.11在windows10上的安装与配置(解压版)在Windows10上安装解压缩版MySql(推荐)Windows安装MySQL5.7.18解压版的教程windowsserver2016安装MySQL5.7.19解压缩版教程详...