"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo extraer valores numéricos de cadenas en SQL?

¿Cómo puedo extraer valores numéricos de cadenas en SQL?

Publicado el 2025-02-04
Navegar:268

How Can I Extract Numeric Values from Strings in SQL?

extraer datos numéricos de la cadena

En el entorno de la base de datos, los datos numéricos integrados pueden necesitar extraerse de la cadena. Considere el siguiente ejemplo:

cadena 1: 003 plan de examenpreliminar Cadena 2: Coordinación005 Cadena 3: balance1000sheet

字符串 1: 003Preliminary Examination Plan   
字符串 2: Coordination005  
字符串 3: Balance1000sheet

String 1: 003 Cadena 2: 005 Cadena 3: 1000

字符串 1: 003
字符串 2: 005
字符串 3: 1000
Crear función dbo.udf_getnumeric ( @Stralphanumeric varchar (256) Curar Return Varchar (256) COMO Comenzar Declarar @intalpha int Setalpha = patindex ('%[^0-9]%', @stralphanumeric) Comenzar Mientras @intalpha> 0 Comenzar Set @Strachanumeric = Stuff (@stralphanumeric, @intalpha, 1, '') Setalpha = patindex ('%[^0-9]%', @stralphanumeric) Fin Fin Return isnull (trim (@stralphanumeric), '0') Fin IR

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

Seleccione dbo.udf_getnumeric (column_name) De table_name

Esto solo devolverá la parte digital de la cadena especificada en la columna especificada. Para los datos de ejemplo proporcionados, el resultado coincidirá con el valor esperado:
SELECT dbo.udf_GetNumeric(column_name) 
from table_name

nota:

en el código original
003
005
1000
]. Esta función de corrección es más clara y fácil de entender y mantener.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3