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

T-SQL usuwa wszystkie znaki inne niż alfanumeryczne i nienumeryczne

Jeden elastyczny sposób;

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. Jak zapobiec automatycznemu zamykaniu programu SQL Server LocalDB?

  2. Jak utworzyć listę rozdzielaną przecinkami za pomocą zapytania SQL?

  3. SQL Server — jak zablokować tabelę do czasu zakończenia procedury składowanej

  4. Jak zainstalować localdb osobno?

  5. DB_NAME() vs ORIGINAL_DB_NAME() w SQL Server:jaka jest różnica?