sql >> データベース >  >> RDS >> Sqlserver

文字列から末尾の数字を削除するにはどうすればよいですか?

    このソリューションは、最初に文字列に数字が含まれているかどうかを確認し、次に文字列が数字で終わっているかどうかを確認するため、もう少し効率的です。

     CREATE FUNCTION dbo.trim_ending_numbers(@columnvalue AS VARCHAR(100)) RETURNS VARCHAR(100)
        BEGIN
        --This will make the query more efficient by first checking to see if it contains any numbers at all
        IF @columnvalue NOT LIKE '%[0-9]%'
            RETURN @columnvalue
    
        DECLARE @counter INT
        SET @counter = LEN(@columnvalue)
    
        IF ISNUMERIC(SUBSTRING(@columnvalue,@counter,1)) = 0
            RETURN @columnvalue 
    
        WHILE ISNUMERIC(SUBSTRING(@columnvalue,@counter,1)) = 1 OR SUBSTRING(@columnvalue,@counter,1) = ' '
        BEGIN
            SET @counter = @counter -1
            IF @counter < 0
                BREAK
        END
        SET @columnvalue = SUBSTRING(@columnvalue,0,@counter+1)
    
        RETURN @columnvalue
        END
    

    実行した場合

    SELECT dbo.trim_ending_numbers('More blah 12321 123123 123132')
    

    戻ります

    'More blah'
    


    1. MySQL-クエリの速度をテストするためにキャッシュを使用しないように強制する

    2. $ http.getとメソッドの違い:'GET'

    3. 初歩的な問題:基本的なPL / SQLコンソール出力?

    4. AFTER LOGON(Oracle)は、拡張子が付けられたPostgreSQLでトリガーされます– login_hook