Я работаю над запросом для SQL Server 2012. У меня проблема: я не могу построить select
Запрос разделяет временное значение столбца на два столбца Когда строка во временной таблице # nonparametri c имеет флаг Allow = 1,
он должен разделить значение Temp столбца из # nonparametri c на два столбца, когда флаг Allow = 1.
предположим, что значение Temp столбца имеет значение 50,40 кг он должен быть разделен на два столбца
Первый столбец с номером, поэтому он будет иметь 50,40 и будет иметь то же имя, что и Parametri c.
Второй столбец с текстом, поэтому он будет иметь кг и он будет иметь то же имя, что и Parametri c + 'Units'.
означает, что Name будет ParametricUnit.
Мне нужно создать запрос, который разделит это на два столбца, когда Flag Allow = 1.
create table #nonparametricdata
(
PART_ID nvarchar(50) ,
CompanyName nvarchar(50),
PartNumber nvarchar(50),
DKFeatureName nvarchar(100),
Tempvalue nvarchar(50),
FlagAllow bit
)
insert into #nonparametricdata
values
('1222','Honda','silicon','package','15.50Am',0),
('1900','MERCEIS','GLASS','family','90.00Am',1),--Build select query split data because FlagAllow=1
('5000','TOYOTA','alominia','source','70.20kg',0),
('8000','MACDA','motor','parametric','50.40kg',1),----Build select query split data because FlagAllow=1
('8900','JEB','mirror','noparametric','75.35kg',0)
create table #FinalTable
(
DKFeatureName nvarchar(50),
DisplayOrder int
)
insert into #FinalTable (DKFeatureName,DisplayOrder)
values
('package',3),
('family',4),
('source',5),
('parametric',2),
('noparametric',1)
то, что я пробую, показано ниже:
DECLARE @SelectqueryData NVARCHAR(MAX)
SELECT
@SelectqueryData = STUFF(
(
SELECT ', ' + case when B.FlagAllow = 1 then '['+A.DKFeatureName+'],['+A.DKFeatureName+'Unit]' else quotename(A.DKFeatureName) end
FROM #FinalTable A
join (Select distinct DKFeatureName,FlagAllow
From #nonparametricdata
) B on A.DKFeatureName=B.DKFeatureName
ORDER BY DisplayOrder
FOR XML PATH ('')
),1,2,''
)
select @SelectqueryData
--select @SelectqueryData from table
Ожидаемый результат:
[noparametric], [parametric]--QueryGetNumber,[parametricUnit]--QueryGetUnitOfMeasure
, [package], [family]--QueryGetNumber,[familyUnit]--QueryGetUnitOfMeasure, [source]
при выполнении запроса выше он должен дать мне результат в виде изображения (только для объяснения):