Declare @Header VarChar(500)Set @Header = ' 'If @Header = '' Print 'True'Else Print 'False'
Declare @Header VarChar(500)Set @Header = ' 'If DATALENGTH(@Header) > 0 print 'True'Else print 'False'
Declare @Header VarChar(500)Set @Header = ' ' --this is 2 spacesIF (REPLACE( @Header,' ', '|') = '||') --replaces each space witha pipe delimeterBEGIN PRINT 'It is 2 spaces' -- just checking if it worksENDELSE PRINT 'Your guess is as good as mine' -- no it is not working
CREATE FUNCTION dbo.DelimitedSplit8KNEW--===== Created by Jeff Moden (Prototype: Testing Still in Progress)--===== Define I/O parameters ( @pString VARCHAR(8000), @pDelimiter CHAR(1) )RETURNS TABLE WITH SCHEMABINDING AS RETURNWITH E1(N) AS ( SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 ), --10 E2(N) AS (SELECT 1 FROM E1 a, E1 b), --100 E4(N) AS (SELECT 1 FROM E2 a, E2 b), --10,000cteTally(N) AS ( SELECT 0 UNION ALL SELECT ROW_NUMBER() OVER (ORDER BY N) FROM E4 ) SELECT ItemNumber = ROW_NUMBER() OVER(ORDER BY t.N), ItemValue = SUBSTRING(@pString,t.N+1,ISNULL(NULLIF(CHARINDEX(@pDelimiter,@pString,t.N+1),0),DATALENGTH(@pString)+1)-t.N-1) FROM cteTally t WHERE t.N BETWEEN 0 AND DATALENGTH(@pString) AND (SUBSTRING(@pString,t.N,1) = @pDelimiter OR t.N = 0);GO