Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh mengekstrak nombor daripada rentetan abjad angka dalam SQL?

Bagaimanakah saya boleh mengekstrak nombor daripada rentetan abjad angka dalam SQL?

Linda Hamilton
Lepaskan: 2025-01-21 01:51:08
asal
562 orang telah melayarinya

How Can I Extract Numbers from Alphanumeric Strings in SQL?

Ekstrak nombor daripada rentetan abjad angka dalam SQL

Soalan:

Anda mempunyai beberapa rentetan yang mengandungi aksara abjad angka dan anda perlu mengekstrak nilai angka sahaja. Contohnya, diberikan rentetan berikut:

  • Rancangan Peperiksaan Awal 003
  • Penyelarasan005
  • Baki 1000 helai

Anda ingin mencari:

  • 003
  • 005
  • 1000

Penyelesaian:

Untuk mengekstrak nombor daripada rentetan menggunakan SQL, anda boleh menggunakan fungsi takrif pengguna (UDF). Cipta UDF berikut:

<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), '0')
END
GO</code>
Salin selepas log masuk

Penggunaan:

Selepas mencipta UDF, anda boleh menggunakannya untuk mengekstrak nombor daripada rentetan:

<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name)
FROM table_name</code>
Salin selepas log masuk

Contohnya:

<code class="language-sql">SELECT dbo.udf_GetNumeric('003Preliminary Examination Plan')</code>
Salin selepas log masuk

Rujukan:

Nota:

Penyelesaian ini mengeluarkan nombor sebagai rentetan. Jika anda memerlukan integer, anda boleh menggunakan fungsi CAST() untuk menukarnya. Kod di atas telah dipermudahkan untuk mengelakkan logik kompleks yang tidak perlu dan memastikan fungsi itu sentiasa mengembalikan nilai.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengekstrak nombor daripada rentetan abjad angka dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan