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

Cara mengekstrak angka dari string menggunakan TSQL

Sepertinya Anda sudah memiliki solusi yang memenuhi kebutuhan Anda, tetapi saya memiliki sedikit trik yang saya gunakan untuk mengekstrak angka dari string yang menurut saya mungkin bermanfaat bagi seseorang. Ini mengambil keuntungan dari pernyataan FOR XML dan menghindari loop eksplisit. Itu membuat fungsi tabel inline yang baik atau skalar sederhana. Lakukan apa yang kamu mau :)

DECLARE @String varchar(255) = 'This1 Is2 my3 Test4 For Number5 [email protected]';


SELECT
    CAST(( 
        SELECT CASE --// skips alpha. make sure comparison is done on upper case
            WHEN ( ASCII(UPPER(SUBSTRING(@String, Number, 1))) BETWEEN 48 AND 57 )
            THEN SUBSTRING(@String, Number, 1)
            ELSE ''END
        FROM
        ( 
            SELECT TOP 255 --// east way to get a list of numbers
                                           --// change value as needed.
                ROW_NUMBER() OVER ( ORDER BY ( SELECT 1 ) ) AS Number
             FROM master.sys.all_columns a
                CROSS JOIN master.sys.all_columns b 
        ) AS n
        WHERE Number <= LEN(@String)
        --// use xml path to pivot the results to a row
        FOR XML PATH('') ) AS varchar(255)) AS Result

Hasil ==> 1234510



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memahami perbedaan antara CUBE dan ROLLUP

  2. C# membuat database secara terprogram dengan SMO

  3. pulau dan celah tsql

  4. Kueri Pohon SQL Server

  5. Tambahkan Batasan CHECK ke Tabel yang Ada di SQL Server (T-SQL)