第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何從SQLServer中的字符串中刪除所有非字母字符?

如何從SQLServer中的字符串中刪除所有非字母字符?

郎朗坤 2019-06-16 13:29:58
如何從SQLServer中的字符串中刪除所有非字母字符?如何從字符串中刪除所有非字母字符?那非字母數(shù)字呢?這必須是一個(gè)自定義函數(shù),還是也有更多可通用的解決方案?
查看完整描述

3 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

嘗試以下功能:

Create Function [dbo].[RemoveNonAlphaCharacters](@Temp VarChar(1000))Returns VarChar(1000)ASBegin

    Declare @KeepValues as varchar(50)
    Set @KeepValues = '%[^a-z]%'
    While PatIndex(@KeepValues, @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')

    Return @TempEnd

就這樣說吧:

Select dbo.RemoveNonAlphaCharacters('abc1234def5678ghi90jkl')

一旦您理解了代碼,您就會(huì)發(fā)現(xiàn)更改它以刪除其他字符也是相對(duì)簡(jiǎn)單的。您甚至可以使這個(gè)動(dòng)態(tài)通過您的搜索模式。

希望能幫上忙。


查看完整回答
反對(duì) 回復(fù) 2019-06-16
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

參數(shù)化版本G型天象可怕的答案:

CREATE FUNCTION [dbo].[fn_StripCharacters](
    @String NVARCHAR(MAX), 
    @MatchExpression VARCHAR(255))RETURNS NVARCHAR(MAX)ASBEGIN
    SET @MatchExpression =  '%['+@MatchExpression+']%'

    WHILE PatIndex(@MatchExpression, @String) > 0
        SET @String = Stuff(@String, PatIndex(@MatchExpression, @String), 1, '')

    RETURN @StringEND

只按字母順序排列:

SELECT dbo.fn_StripCharacters('a1!s2@d3#f4$', '^a-z')

僅為數(shù)字:

SELECT dbo.fn_StripCharacters('a1!s2@d3#f4$', '^0-9')

只有字母數(shù)字:

SELECT dbo.fn_StripCharacters('a1!s2@d3#f4$', '^a-z0-9')

非字母數(shù)字:

SELECT dbo.fn_StripCharacters('a1!s2@d3#f4$', 'a-z0-9')


查看完整回答
反對(duì) 回復(fù) 2019-06-16
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

信不信由你,在我的系統(tǒng)中,這個(gè)丑陋的功能比G天象優(yōu)雅的功能表現(xiàn)得更好。

CREATE FUNCTION dbo.RemoveSpecialChar (@s VARCHAR(256)) RETURNS VARCHAR(256) WITH SCHEMABINDING    BEGIN
        IF @s IS NULL
            RETURN NULL
        DECLARE @s2 VARCHAR(256) = '',
                @l INT = LEN(@s),
                @p INT = 1

        WHILE @p <= @l            BEGIN
                DECLARE @c INT                SET @c = ASCII(SUBSTRING(@s, @p, 1))
                IF @c BETWEEN 48 AND 57
                   OR  @c BETWEEN 65 AND 90
                   OR  @c BETWEEN 97 AND 122
                    SET @s2 = @s2 + CHAR(@c)
                SET @p = @p + 1
            END

        IF LEN(@s2) = 0
            RETURN NULL

        RETURN @s2


查看完整回答
反對(duì) 回復(fù) 2019-06-16
  • 3 回答
  • 0 關(guān)注
  • 2029 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)