sql >> Database teknologi >  >> RDS >> Sqlserver

Forespørgsel for kun at hente tal fra en streng

Opret først denne 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

Brug nu function som

SELECT dbo.udf_GetNumeric(column_name) 
from table_name

SQL FIDDLE

Jeg håber, at dette løste dit problem.

Reference



  1. Oprettelse af en trigger i Oracle Express

  2. Advarsel:mysql_connect():[2002] Ingen sådan fil eller mappe (forsøger at oprette forbindelse via unix:///tmp/mysql.sock) i

  3. Sådan eksporteres data fra SQL Server 2005 til MySQL

  4. Sådan får du en beregnet kolonnes definition i SQL Server ved hjælp af T-SQL