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

编写人:CC阿爸

2013-10-18

  • 近来在开发一个项目时,一包含数字的字符串,需要取出中间的数字部分进行排序.经过baidu搜索。并结合自己项目的需求,编写了一个自定义的SQL函数用供项目中使用。
/****** 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
  • 项目中的问题解决后,反过来思考了一下如果只取出字串中的字符部分,又如何处理呢。经过修改,修改如下,生成另一个SQL自定义函数
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')

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

最新文章

  1. 利用百度API Store接口进行火车票查询
  2. Android基础:startActivityForResult 和 onActivityResult 问题
  3. windows配置nginx实现负载均衡集群
  4. PHP异步工作避免程序运行超时
  5. SQLITE LIMIT
  6. ASP.NET MVC4 学习系统三(控制器Controller)
  7. 网络编程之ping
  8. C++中头文件(.h)和源文件(.cpp)都应该写些什么
  9. jquery的extend()函数
  10. NET5
  11. 【Head First Javascript】学习笔记0——自己制作chm参考手册素材
  12. 【JS学习笔记】第一个JS效果——鼠标提示框
  13. 携程React Native实践
  14. machine learning 之 Neural Network 3
  15. ubuntu-18.04 设置开机启动脚本
  16. Dynamics CRM 日常使用JS整理(一)
  17. Oracle 相关知识
  18. C# Enum,Int,String的互相转换 [转]
  19. 主流浏览器Css&js hack写法
  20. Codeforces Beta Round #72 (Div. 2 Only)

热门文章

  1. 20145305 《Java程序设计》实验一
  2. C++学习39 异常处理入门(try和catch)
  3. 虚拟机与CentOS的安装设置。
  4. 用HTML代码加载Unity内容
  5. post from传值
  6. UIButton 详解
  7. HDU 4597 Play Game 记忆化DP
  8. Digest [IAB_SRI_Online_Advertising_Effectiveness]
  9. No.013 Roman to Integer
  10. TCP/IP详解学习笔记(2)-- 数据链路层