zoukankan      html  css  js  c++  java
  • 字符函数PATINDEX()与STUFF()

     函数 PATINDEX() STUFF() 取数字 英语 汉字

    更多:http://msdn.microsoft.com/zh-cn/library/ms188395.aspx

    PATINDEX()

    返回模式在指定表达式中第一次出现的起始位置;如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零。

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

    STUFF()

    STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。

    语法 : STUFF ( character_expression , start , length , replaceWith_expression )

    取数字

    --创建
    CREATE FUNCTION dbo.f_GetNumber(@StringWithNumber VARCHAR(100))
    RETURNS VARCHAR(100)
    AS 
        BEGIN        
            WHILE PATINDEX('%[^0-9]%', @StringWithNumber) > 0 
                BEGIN 
                    SET @StringWithNumber = STUFF(@StringWithNumber,PATINDEX('%[^0-9]%',@StringWithNumber), 1,'');
                END
            RETURN @StringWithNumber
        END
    --测试,执行function的时候,dbo. 千万不能掉了  
    SELECT  dbo.f_GetNumber('asdf464568asdf')

    取字母

    --创建    
    CREATE FUNCTION dbo.Get_String ( @String VARCHAR(100) )
    RETURNS VARCHAR(100)
    AS 
        BEGIN
            WHILE PATINDEX('%[^a-z$]%', @String) > 0 
                BEGIN 
                    SET @String = STUFF(@String, PATINDEX('%[^a-z]%', @String), 1,'') ;
                END 
            RETURN @String
        END
    
    --测试
    SELECT  dbo.Get_String('asdf464568asdf')

    --取出中文

    --取出中文 
    IF OBJECT_ID('dbo.GetChineseFromString') IS NOT NULL 
        DROP FUNCTION dbo.GetChineseFromString 
    GO 
    CREATE FUNCTION dbo.GetChineseFromString ( @StringWithChinese NVARCHAR(100) )
    RETURNS NVARCHAR(100)
    AS 
        BEGIN 
            WHILE PATINDEX('%[^吖-座]%', @StringWithChinese) > 0 
                SET @StringWithChinese = STUFF(@StringWithChinese, PATINDEX('%[^吖-座]%', @StringWithChinese), 1, N''); 
            RETURN @StringWithChinese 
        END
    go 
    SELECT dbo.GetChineseFromString('asda54615哈哈笑死我了asdfsadf56564!!!')

     

  • 相关阅读:
    java 显示当前的时间
    java RandomAccessFile 向文件中写入数据,怎么样不覆盖原来的数据
    NCARG 6.2.0 安装方法
    【转】在Fedora 9下用IFC安装MM5
    Linux下GrADS的安装
    我的博客园
    nyist 2 括号配对问题
    nyist 100 1的个数
    进制(堆栈)
    进制
  • 原文地址:https://www.cnblogs.com/Jolinson/p/3477003.html
Copyright © 2011-2022 走看看