Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengekstrak nombor daripada rentetan menggunakan SQL?
Pengeluaran nombor daripada rentetan SQL
Soalan:
Tulis pertanyaan SQL untuk mengekstrak hanya nilai angka daripada rentetan yang diberikan. Contohnya, memandangkan rentetan input "Rancangan Peperiksaan Awal 003", "Penyelarasan005" dan "Lembaran Baki1000", output yang dikehendaki ialah "003", "005" dan "1000" masing-masing.
Penyelesaian:
Untuk melaksanakan tugas ini, kami boleh memanfaatkan fungsi takrif pengguna (UDF) untuk menghuraikan rentetan dan mendapatkan semula nilai berangka. Begini cara melakukannya:
<code class="language-sql">CREATE FUNCTION dbo.udf_GetNumeric ( @strAlphaNumeric VARCHAR(256) ) RETURNS VARCHAR(256) AS BEGIN DECLARE @intAlpha INT SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric) BEGIN WHILE @intAlpha > 0 BEGIN SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' ) SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric ) END END RETURN ISNULL(TRIM(@strAlphaNumeric), '') END GO</code>
Kini kami boleh menggunakan UDF ini dalam pertanyaan kami:
<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) FROM table_name</code>
Kaedah lanjutan ini mengekstrak nilai berangka dengan cekap daripada rentetan dalam SQL. Ambil perhatian bahawa UDF yang diubah suai ini mengendalikan nilai nol dan kes yang mengandungi hanya aksara bukan angka, mengembalikan rentetan kosong dan bukannya 0.
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak nombor daripada rentetan menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!