create table #bmprdstr(
item_no int identity(1,1) not null primary key
,cmt1 varchar(10) null
,cmt2 varchar(10) null
,cmt3 varchar(10) null)
insert into #bmprdstr(cmt1,cmt2,cmt3)
values('cm1','cm2','cm3')
,('cm1 rec2','cm2 rec2','cm3 rec3')
select ROW_NUMBER()OVER(PARTITION BY item_no ORDER BY cmt1,cmt2,cmt3) as Seq_no
,b.item_no
,c.Comment
from #bmprdstr as b
cross apply
(select b.cmt1 union all
select b.cmt2 union all
select b.cmt3) as c(Comment)
the same output if you want to use Table Value constructor in the cross apply
SELECT ROW_NUMBER()OVER(PARTITION BY item_no ORDER BY cmt1,cmt2,cmt3) as Seq_no
,b.item_no
,c.Comment
FROM #bmprdstr as b
CROSS APPLY
( VALUES (b.cmt1)
,(b.cmt2)
,(b.cmt3)
) as c(Comment)