Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truy vấn để chỉ lấy số từ một chuỗi

Đầu tiên, hãy tạo UDF này

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

Bây giờ hãy sử dụng hàm function như

SELECT dbo.udf_GetNumeric(column_name) 
from table_name

SQL FIDDLE

Tôi hy vọng điều này giải quyết được vấn đề của bạn.

Tham khảo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể tìm thấy microsoft.sqlserver.batchparser.dll

  2. Lý do nên nâng cấp lên SQL Server 2017

  3. Tại sao lại xảy ra lỗi liên quan đến mạng hoặc lỗi cụ thể đối với phiên bản cụ thể trong khi thiết lập kết nối với SQL Server?

  4. T-SQL - Bí danh sử dụng =so với as

  5. SQL Server:xoay động trên 5 cột