sql >> Database >  >> RDS >> Sqlserver

Query om alleen getallen uit een string te krijgen

Maak eerst deze UDF

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(@strAlphaNumeric,0)
END
GO

Gebruik nu de function als

SELECT dbo.udf_GetNumeric(column_name) 
from table_name

SQL FIDDLE

Ik hoop dat dit je probleem heeft opgelost.

Referentie



  1. oracle SQL hoe de tijd van de datum te verwijderen

  2. ScaleGrid DBaaS genomineerd voor de Cloud Excellence Awards 2018

  3. Wat is het maximale aantal kolommen in een PostgreSQL-selectiequery?

  4. Windows Azure VM-prestaties vergelijken, deel 1