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: