Consulta SQL para obtener solo números de una string

Como sabemos en una base de datos SQL podemos insertar cualquier tipo de datos. A veces, en el servidor de producción, los datos se corrompen cuando dos o más filas se fusionan y se guardan en una columna. En ese caso, podemos extraer la parte numérica de esa string y guardarla nuevamente. Entonces, en este artículo, aprenderemos cómo extraer partes numéricas de una string en SQL. Haremos uso de Microsoft SQL como nuestro servidor.

Entonces, comencemos creando una base de datos primero.

Paso 1: Crear base de datos

Consulta:

CREATE DATABASE GFG

Paso 2: usa esta base de datos

Consulta:

USE GFG

Paso 3: crea una tabla 

Crear una tabla (GetNum) para almacenar los datos

Consulta:

CREATE TABLE GetNum(
 StudentName varchar (255)
)
 

Paso 4: Inserte algunos datos en la base de datos

Consulta:

 INSERT INTO GetNum (StudentName) VALUES ('Devesh123')
 
 INSERT INTO GetNum (StudentName) VALUES ('Geeks2')
 
 INSERT INTO GetNum (StudentName) VALUES ('For5')
 
 INSERT INTO GetNum (StudentName) VALUES ('Aman98')

Producción:

Paso 4: consulta SQL para extraer los números

Escribiremos una función SQL para no ejecutar la misma consulta una y otra vez para extraer los números, podemos usar esa función varias veces y también se almacenará en la base de datos.

Consulta:

CREATE FUNCTION dbo.getNumericValue
 (
@inputString VARCHAR(256)
)
RETURNS VARCHAR(256)
AS
BEGIN
  DECLARE @integerPart INT
  SET @integerPart = PATINDEX('%[^0-9]%', @inputString)
  BEGIN
    WHILE @integerPart > 0
    BEGIN
      SET @inputString = STUFF(@inputString, @integerPart, 1, '' )
      SET @integerPart = PATINDEX('%[^0-9]%', @inputString )
    END
  END
  RETURN ISNULL(@inputString,0)
END
GO

Puede consultar para obtener más detalles sobre PATINDEX().

Paso 5: ahora ejecute la función creada para obtener el resultado deseado.

Consulta:

SELECT dbo.getNumericValue(StudentName) from GetNum

Producción:

Publicación traducida automáticamente

Artículo escrito por idevesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *