Some methods of removing trailing spaces, tabs, carriage returns and line feeds (new lines).
How?
First in Transact-SQL:
SELECT
RTRIM( REPLACE( REPLACE( REPLACE( @myString, CHAR(9), ''), CHAR(10), ''), CHAR(13), '') )
-- CHAR(9) = Tab
-- CHAR(10) = Line Feed
-- CHAR(13) = Carriage Return
And in SSIS:
TRIM( LOWER( REPLACE( REPLACE( REPLACE( myString, "\x0009", "" ), "\x000A", "" ), "\x000D", "" ) ) ) -- \x0009 = Tab -- \x000A = Line Feed -- \x000D = Carriage Return -- or split for clarity TRIM( LOWER( REPLACE( REPLACE( REPLACE( myString, "\x0009", "" ), "\x000A", "" ), "\x000D", "" ) ) )
Using it to compare to a value?
There are cases in T-SQL where the trim is unecessary and a similar equation can be written:
Table: DMExtractEmployeeTable ID ForeName SurName --------------------------------- 1 Joel Lipman 2 JOE THE GREATEST DECLARE @EmployeeStr = 'JOE ' + CHAR(9) + CHAR(10) + CHAR(13) -- Before SELECT COUNT(*) FROM Employees WHERE Employee.ForeName = 'JOE' -- yields 1 -- What we want (equivalent?) SELECT COUNT(*) FROM Employees WHERE Employee.ForeName = @EmployeeStr -- yields 0 -- After (replacing the = with LIKE) SELECT COUNT(*) FROM Employees WHERE Employee.ForeName LIKE @EmployeeStr -- yields 1
Discussion
Comments
Questions, corrections and useful additions are reviewed before appearing here.
No comments yet. Start the discussion.