如何将单位显示为同一显示订单的第二个显示项?
How to display Unit as Second Display Item for same display Order?
我在 SQL 服务器 2012 上工作我遇到问题:我无法将包含单位的功能安排为相同显示顺序的第二项显示。
以特征族为例
'Family' as [Family], 'FamilyMaxValue' as [FamilyMaxValue], 'FamilyUnit' as [FamilyUnit]
我需要如下
'Family' as [Family], 'FamilyUnit' as [FamilyUnit],'FamilyMaxValue' as [FamilyMaxValue]
除我的问题外,每个功能的功能和单位以及最大值都获得相同的 DisplayOrder
如何将单位作为同一显示顺序的第二个显示。
含义变化将是用逗号分隔的项目顺序显示特征单位作为相同显示顺序的第二个显示。
create table #SplitNumberAndUnitsFinal
(
DKFeatureName nvarchar(100),
DisplayOrder int
)
insert into #SplitNumberAndUnitsFinal (DKFeatureName,DisplayOrder)
values
('package',1),
('packageUnit',1),
('Family',2),
('FamilyMaxValue',2),
('FamilyUnit',2),
('parts',3),
('partsMaxValue',3),
('partsUnit',3)
DECLARE @Header nvarchar(max)=( select
substring(
(
Select ', '''+ DKFeatureName +''' as ['+ DKFeatureName +']' AS [text()]
From #SplitNumberAndUnitsFinal
GROUP BY DKFeatureName
ORDER BY MIN(DisplayOrder)
--order by DisplayOrder
For XML PATH ('')
), 2, 10000) [Columns])
print @Header
预期结果将特征单元安排为第二个显示:
Feature,FeatureUnit,FeatureMaxValue according to same display Order
'package' as [package], 'packageUnit' as [packageUnit],
'Family' as [Family], 'FamilyUnit' as [FamilyUnit],'FamilyMaxValue' as [FamilyMaxValue],
'parts' as [parts], 'partsUnit' as [partsUnit],'partsMaxValue' as [partsMaxValue]
而且我不需要显示如下:
Feature,FeatureMaxValue,FeatureUnit for same Display Order
'package' as [package], 'packageUnit' as [packageUnit],
'Family' as [Family], 'FamilyMaxValue' as [FamilyMaxValue], 'FamilyUnit' as [FamilyUnit],
'parts' as [parts], 'partsMaxValue' as [partsMaxValue], 'partsUnit' as [partsUnit]
如果 DisplayOrder
本身不是唯一的,则您需要一个额外的列来控制显示顺序。这将允许您在 ORDER BY
子句中为所需的顺序指定两列:
CREATE TABLE #SplitNumberAndUnitsFinal
(
DKFeatureName nvarchar(100),
DisplayOrder int,
SecondaryDisplayOrder int
);
INSERT INTO #SplitNumberAndUnitsFinal (DKFeatureName,DisplayOrder,SecondaryDisplayOrder)
VALUES
('package',1,1),
('packageUnit',1,2),
('Family',2,1),
('FamilyMaxValue',2,3),
('FamilyUnit',2,2),
('parts',3,1),
('partsMaxValue',3,2),
('partsUnit',3,3)
DECLARE @Header nvarchar(MAX)=( select
SUBSTRING(
(
SELECT ', '''+ DKFeatureName +''' as ['+ DKFeatureName +']' AS [text()]
FROM #SplitNumberAndUnitsFinal
ORDER BY DisplayOrder,SecondaryDisplayOrder
FOR XML PATH ('')
), 2, 10000) [Columns]);
PRINT @Header;
我在 SQL 服务器 2012 上工作我遇到问题:我无法将包含单位的功能安排为相同显示顺序的第二项显示。
以特征族为例
'Family' as [Family], 'FamilyMaxValue' as [FamilyMaxValue], 'FamilyUnit' as [FamilyUnit]
我需要如下
'Family' as [Family], 'FamilyUnit' as [FamilyUnit],'FamilyMaxValue' as [FamilyMaxValue]
除我的问题外,每个功能的功能和单位以及最大值都获得相同的 DisplayOrder
如何将单位作为同一显示顺序的第二个显示。
含义变化将是用逗号分隔的项目顺序显示特征单位作为相同显示顺序的第二个显示。
create table #SplitNumberAndUnitsFinal
(
DKFeatureName nvarchar(100),
DisplayOrder int
)
insert into #SplitNumberAndUnitsFinal (DKFeatureName,DisplayOrder)
values
('package',1),
('packageUnit',1),
('Family',2),
('FamilyMaxValue',2),
('FamilyUnit',2),
('parts',3),
('partsMaxValue',3),
('partsUnit',3)
DECLARE @Header nvarchar(max)=( select
substring(
(
Select ', '''+ DKFeatureName +''' as ['+ DKFeatureName +']' AS [text()]
From #SplitNumberAndUnitsFinal
GROUP BY DKFeatureName
ORDER BY MIN(DisplayOrder)
--order by DisplayOrder
For XML PATH ('')
), 2, 10000) [Columns])
print @Header
预期结果将特征单元安排为第二个显示:
Feature,FeatureUnit,FeatureMaxValue according to same display Order
'package' as [package], 'packageUnit' as [packageUnit],
'Family' as [Family], 'FamilyUnit' as [FamilyUnit],'FamilyMaxValue' as [FamilyMaxValue],
'parts' as [parts], 'partsUnit' as [partsUnit],'partsMaxValue' as [partsMaxValue]
而且我不需要显示如下:
Feature,FeatureMaxValue,FeatureUnit for same Display Order
'package' as [package], 'packageUnit' as [packageUnit],
'Family' as [Family], 'FamilyMaxValue' as [FamilyMaxValue], 'FamilyUnit' as [FamilyUnit],
'parts' as [parts], 'partsMaxValue' as [partsMaxValue], 'partsUnit' as [partsUnit]
如果 DisplayOrder
本身不是唯一的,则您需要一个额外的列来控制显示顺序。这将允许您在 ORDER BY
子句中为所需的顺序指定两列:
CREATE TABLE #SplitNumberAndUnitsFinal
(
DKFeatureName nvarchar(100),
DisplayOrder int,
SecondaryDisplayOrder int
);
INSERT INTO #SplitNumberAndUnitsFinal (DKFeatureName,DisplayOrder,SecondaryDisplayOrder)
VALUES
('package',1,1),
('packageUnit',1,2),
('Family',2,1),
('FamilyMaxValue',2,3),
('FamilyUnit',2,2),
('parts',3,1),
('partsMaxValue',3,2),
('partsUnit',3,3)
DECLARE @Header nvarchar(MAX)=( select
SUBSTRING(
(
SELECT ', '''+ DKFeatureName +''' as ['+ DKFeatureName +']' AS [text()]
FROM #SplitNumberAndUnitsFinal
ORDER BY DisplayOrder,SecondaryDisplayOrder
FOR XML PATH ('')
), 2, 10000) [Columns]);
PRINT @Header;