Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie, aby uzyskać tylko liczby z ciągu

Najpierw utwórz ten 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

Teraz użyj function jako

SELECT dbo.udf_GetNumeric(column_name) 
from table_name

Skrzydełko SQL

Mam nadzieję, że to rozwiązało Twój problem.

Odniesienie



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Które zapytanie SQL jest szybsze? Filtruj według kryteriów przyłączenia lub klauzuli Gdzie?

  2. Sparametryzowane zapytanie oczekuje parametru, którego nie podano

  3. 4 sposoby na uzyskanie listy harmonogramów w programie SQL Server Agent (T-SQL)

  4. SQL Server:użyj parametru w CREATE DATABASE

  5. POKAŻ BAZY DANYCH Odpowiednik w SQL Server – sp_databases