zoukankan      html  css  js  c++  java
  • sql server筛选所有汉字、字母、数字

    核心思想在于下面几个模式的组合使用:

    %[0-9]% :              所有数字

    %[A-Za-z]%:所有字母

    %[吖-咗]%:所有汉字

    1. 去除汉字(字母、数字):

    举出一例,其他类似:

    CREATE FUNCTION f_RemoveChinese
    (
      @str VARCHAR(500)
    )
     
    RETURNS VARCHAR(500)
    AS
    BEGIN
     
    -- '%[0-9]%' 所有數字
    -- '%[A-Za-z]%' 所有字母
    -- '%[A-Za-z0-9]%' 所有數字與字母
    -- .... 組合使用,依此類推
     
    WHILE PATINDEX('%[吖-咗]%',@str) > 0
    SET @str = STUFF(@str,PATINDEX('%[吖-咗]%',@str),1,'')
    RETURN @str
     
    END
     
    GO
     
     
     
    SELECT dbo.f_RemoveChinese('愛@@情123騙子我問@@你') -- @@123@@

    2. 提取汉字(字母、数字):

    提取XX可转化为去除非XX 。 举出一例,其他类似

    CREATE FUNCTION f_getChinese
    (
        @str VARCHAR(500)
    )
     
    RETURNS VARCHAR(500)
    AS
    BEGIN
     
    -- '%[^0-9]%' 所有數字
     
    -- '%[^A-Za-z]%' 所有字母
     
    -- '%[^A-Za-z0-9]%' 所有數字與字母
     
    -- .... 組合使用,依此類推
     
    WHILE PATINDEX('%[^吖-咗]%',@str) > 0
    SET @str = STUFF(@str,PATINDEX('%[^吖-咗]%',@str),1,'')
     
    RETURN @str
    END
    GO
     
     
    SELECT dbo.f_getChinese('愛@@情123騙子我問@@你') -- 愛情騙子我問你

    3. 提取数字(支持小数点):

    上面的代码将模式直接换成'%[^0-9]%'的话,不支持带小数点的数字,下面给出一个修正的:

    -- 提取所有漢字(字母、數字)
    CREATE FUNCTION f_GetNum
    (
    @str VARCHAR(500)
    )
    RETURNS VARCHAR(500)
    AS
    BEGIN
     
    -- get num and dot
    WHILE (PATINDEX('%[^0-9.]%',@str) > 0)
    SET @str = STUFF(@str,PATINDEX('%[^0-9.]%',@str),1,'')
     
    -- remove left dot
     
    WHILE(LEFT(@str,1)='.')
    SET @str = RIGHT(@str,LEN(@str)-1)
     
    -- remove right dot
    WHILE(RIGHT(@str,1)='.')
    SET @str = LEFT(@str,LEN(@str)-1)
    RETURN @str
    END
    GO
     
     
    SELECT dbo.f_GetNum('愛@@..情1.23騙子我問...@@你') -- 1.23
  • 相关阅读:
    2016.10.15先占坑
    2016.10.11先占坑
    2016.10.13先占坑
    2016.10.7先占坑
    main()里面为什么要放String[] args
    对于一个给定的正整数 n ,请你找出一共有多少种方式使 n 表示为若干个连续正整数的和,要求至少包括两个正整数。
    求两个数的最大公约数的三种算法总结
    C++
    Dev-c5.11的使用
    客户端和服务器端的交互(未完待续)
  • 原文地址:https://www.cnblogs.com/gered/p/12779299.html
Copyright © 2011-2022 走看看