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

T-SQL премахва всички небуквени и нецифрови знаци

Един гъвкав начин;

CREATE FUNCTION [dbo].[fnRemovePatternFromString](@BUFFER VARCHAR(MAX), @PATTERN VARCHAR(128)) RETURNS VARCHAR(MAX) AS
BEGIN
    DECLARE @POS INT = PATINDEX(@PATTERN, @BUFFER)
    WHILE @POS > 0 BEGIN
        SET @BUFFER = STUFF(@BUFFER, @POS, 1, '')
        SET @POS = PATINDEX(@PATTERN, @BUFFER)
    END
    RETURN @BUFFER
END

select dbo.fnRemovePatternFromString('cake & beer $3.99!?c', '%[$&.!?]%')

(No column name)
cake  beer 399c


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранената процедура виси привидно без обяснение

  2. Рекурсивна заявка в SQL Server

  3. Сравнете DATETIME и DATE, пренебрегвайки частта от времето

  4. Уникално ограничение на TSQL Multi Column, което също позволява множество нулеви стойности

  5. ExecuteNonQuery() за вмъкване