Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara menghapus angka tambahan dari string?

Solusi ini seharusnya sedikit lebih efisien karena pertama-tama akan memeriksa apakah string berisi angka, lalu memeriksa apakah string berakhir dengan angka.

 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

Jika Anda menjalankan

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

Ini akan kembali

'More blah'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 - gunakan cmd untuk menghasilkan dengan header ke .csv

  2. Bagaimana cara mendapatkan hasil float dengan membagi dua nilai integer menggunakan T-SQL?

  3. Bisakah Solusi Rekursif ini ditulis menjadi T-SQL Query menggunakan CTE atau OVER?

  4. Mengisi tanggal yang hilang berdasarkan grup

  5. SQL Server Profiler - Bagaimana cara memfilter jejak untuk hanya menampilkan acara dari satu database?