Если вы пытаетесь создать список с разделителями, есть «лучшие» способы. Если вы используете 2017+, вы можете использовать STRING_AGG
:
CREATE TABLE dbo.myTbl (Pot varchar(4));
INSERT INTO dbo.myTbl (Pot)
VALUES('ABC'),
('MPOT'),
('NVPN'),
('PLGG');
GO
DECLARE @Pot nvarchar(MAX)
SET @Pot = (SELECT STRING_AGG(QUOTENAME(Pot), ',') WITHIN GROUP (ORDER BY CASE WHEN Pot = 'MPot' THEN '1' ELSE Pot END) FROM dbo.myTbl);
PRINT @Pot;
Если вы используете 2016-, то вы можете использовать FOR XML PATH
:
DECLARE @Pot nvarchar(MAX);
SET @Pot = STUFF((SELECT ',' + QUOTENAME(Pot)
FROM dbo.myTbl
ORDER BY CASE WHEN Pot = 'MPot' THEN '1' ELSE Pot END
FOR XML PATH(N''), TYPE).value('.', 'nvarchar(MAX)'),1,1,'');