SQL TRIM FUNCTION

Sql tarafında ETL, bulk insert, data compare gibi işlemler yaparken string ifadelerin başlarında ve sonlarında yer alan boşluk gibi ifadeler çok can sıkıcı olabiyor çoğu zaman.

Özellikle data, source olarak bir file kullanılarak elde edilmişse; kayıtlarda boşluk dışında enter gibi farklı ifadelerin de yer alma ihtimali yüksektir. Bu tarz verileri akıllıca trimleyebilmek adına son zamanlarda uğraştığım Data Mining Projesinin ETL modülünde kullanmak üzere yazdığım sql function'u sizlerle de paylaşmak istedim.

CREATE FUNCTION   [dbo].[Trim]
(
      @pString    NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
BEGIN 
      DECLARE     @pReturnString    NVARCHAR(MAX)
     
      SET         @pString    =      REPLACE(REPLACE(@pString,CHAR(13),CHAR(32)),CHAR(10),CHAR(32))
 
      WHILE (ISNULL(CHARINDEX(CHAR(32)+CHAR(32),@pString),0)>0)
      BEGIN
            SET   @pString    =     REPLACE(@pString,CHAR(32)+CHAR(32),CHAR(32))
      END     
      IF (@pString IS NULL OR LTRIM(RTRIM(@pString))='')
            SET   @pReturnString    =     NULL
      ELSE
            SET   @pReturnString    =     LTRIM(RTRIM(@pString)) 
      RETURN      @pReturnString 

END 

Örnek Kullanım Şekli ve Outputs

SELECT dbo.Trim(' Erbil Taner Tugaylı ') -->Output: Erbil Taner Tugaylı
SELECT dbo.Trim('   Erbil    Taner     Tugaylı    ') -->Output: Erbil Taner Tugaylı
SELECT dbo.Trim(' Erbil
Taner
Tugaylı ')  -->Output: Erbil Taner Tugaylı
Henüz yorum yapılmamış.