DECLARE @Table1 AS TABLE(rwid bigint ,val NVARCHAR(MAX))
DECLARE @coun as bigint
DECLARE @x as bigint
DECLARE @Table2 AS TABLE(rwid bigint identity(1,1),column1 NVARCHAR(255),column2 NVARCHAR(255),column3 NVARCHAR(255),column4 NVARCHAR(255))
DECLARE @col1 AS NVARCHAR(255)
DECLARE @col2 AS NVARCHAR(255)
DECLARE @col3 AS NVARCHAR(255)
DECLARE @Col4 AS NVARCHAR(255)
DECLARE @nextlevelQuilifier as bigint
DECLARE @Status AS NVARCHAR(50)
SET @x=1
SET @nextlevelQuilifier=1
INSERT INTO @Table1
SELECT 1,'All Values'
Union
SELECT 2,'#Loans'
Union
SELECT 3,'##Revolving'
Union
SELECT 4,'###Credit Cards'
SELECT @coun=COUNT(*) FROM @Table1
While @coun >= @x
Begin
SELECT @nextlevelQuilifier=[dbo].[ufn_CountChar](val,'#') FROM @Table1 WHERE rwid=@x
IF @nextlevelQuilifier=0
BEGIN
SELECT @col1= REPLACE(Val,'#','') FROM @Table1 WHERE rwid=@x
INSERT INTO @Table2(column1,column2,column3,column4)
SELECT @col1 ,'','' ,''
END
ELSE IF @nextlevelQuilifier=1
BEGIN
SELECT @col2= REPLACE(Val,'#','') FROM @Table1 WHERE rwid=@x
INSERT INTO @Table2 (column1,column2,column3,column4)
SELECT '' ,@col2 ,'' ,''
END
ELSE IF @nextlevelQuilifier=2
BEGIN
SELECT @col3= REPLACE(Val,'#','') FROM @Table1 WHERE rwid=@x
INSERT INTO @Table2 (column1,column2,column3,column4)
SELECT '','',@col3 ,''
END
ELSE IF @nextlevelQuilifier=3
BEGIN
SELECT @col4= REPLACE(Val,'#','') FROM @Table1 WHERE rwid=@x
INSERT INTO @Table2 (column1,column2,column3,column4)
SELECT '','','',@Col4
END
set @x=@x+1
End
SELECT * from @Table2 order by rwid
For this you need below function for counting char in string
CREATE FUNCTION [dbo].[ufn_CountChar] ( @pInput VARCHAR(1000), @pSearchChar NVARCHAR(255) )
RETURNS INT
BEGIN
DECLARE @vInputLength INT
DECLARE @vIndex INT
DECLARE @vCount INT
SET @vCount = 0
SET @vIndex = 1
SET @vInputLength = LEN(@pInput)
WHILE @vIndex <= @vInputLength
BEGIN
IF SUBSTRING(@pInput, @vIndex, 1) = @pSearchChar
SET @vCount = @vCount + 1
SET @vIndex = @vIndex + 1
END
RETURN @vCount
END
GO
Hope this helps if yes then please accept and vote the answer otherwise revert back with your queries
--Rahul D.