zoukankan      html  css  js  c++  java
  • 在SQL中取出字符串中数字部分或在SQL中取出字符部分

    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
    View Code
    •   项目中的问题解决后,反过来思考了一下如果只取出字串中的字符部分,又如何处理呢。经过修改,修改如下,生成另一个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')
    View Code

      

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

  • 相关阅读:
    html+vue.js 实现分页可兼容IE
    Display、Visibility 和 Opacity 的区别
    Vue项目刷新页面 IE/360 浏览器 input输入框不清空问题处理
    Webpack入门
    linux下Tomcat日志文件catalina.out的切割
    无监控,不运维
    windows与linux下jdk+tomcat安裝
    java面向对象(提高篇)
    java面向对象(汇总)
    JAVA工程师简历模板
  • 原文地址:https://www.cnblogs.com/bribe/p/3393344.html
Copyright © 2011-2022 走看看