I am trying to break up a string coming in '!|!':
DECLARE @value varchar(max) = 'A750!|!none!|!none!|!N'
DECLARE @test varchar(max) = Replace(@value, '!|!', '.');
declare @my1 varchar(500) = (SELECT ParseName(@test, 1))
declare @my2 varchar(500) = (SELECT ParseName(@test, 2))
declare @my3 varchar(500) = (SELECT ParseName(@test, 3))
declare @my4 varchar(500) = (SELECT ParseName(@test, 4))
declare @my5 varchar(500) = (SELECT ParseName(@test, 5))
declare @my6 varchar(500) = (SELECT ParseName(@test, 6))
declare @my7 varchar(500) = (SELECT ParseName(@test, 7))
select @my1
select @my2
select @my3
select @my4
select @my5
select @my6
select @my7
Results:
But when I change the string to have another value:
DECLARE @value varchar(max) = 'A750!|!none!|!none!|!N!|!Y'
All NULLs return:
Why is this happening and how can I get more incoming separated values into variables?