Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Заявка, за да получите само числа от низ

Първо създайте този 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

Сега използвайте function като

SELECT dbo.udf_GetNumeric(column_name) 
from table_name

SQL FIDDLE

Надявам се, че това е решило проблема ви.

Справка



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Присвойте резултата от динамичния sql на променлива

  2. Елиминиране на присъединяване:Когато SQL Server премахва ненужните таблици

  3. Какво е SQL Server?

  4. Как да деактивирате улавянето на промяна на данни (CDC) в база данни в SQL Server - урок за SQL Server

  5. SQUARE() Примери в SQL Server