Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengekstrak nombor daripada rentetan menggunakan SQL?

Bagaimana untuk mengekstrak nombor daripada rentetan menggunakan SQL?

DDD
Lepaskan: 2025-01-21 01:42:09
asal
728 orang telah melayarinya

How to Extract Numbers from Strings Using 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:

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
Salin selepas log masuk

Kini kami boleh menggunakan UDF ini dalam pertanyaan kami:

SELECT dbo.udf_GetNumeric(column_name) 
FROM table_name
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan