Sql 我希望CTE中的帮助从表值中显示标题名称
我正试图从表中取出几条记录。我有一个类别映射到多个子类别。我希望标题名称作为每个记录的子类别描述 我已经做了以下工作,并用行号拆分了类别Sql 我希望CTE中的帮助从表值中显示标题名称,sql,sql-server,Sql,Sql Server,我正试图从表中取出几条记录。我有一个类别映射到多个子类别。我希望标题名称作为每个记录的子类别描述 我已经做了以下工作,并用行号拆分了类别 DROP TABLE #temp CREATE TABLE #temp ( [Description] VARCHAR(100), SubDescription VARCHAR(100), IsOMExceptionRequired bit,IsAMB bit,IsARS bit,escalationtypeid int, CategorySortOrder
DROP TABLE #temp
CREATE TABLE #temp ( [Description] VARCHAR(100), SubDescription VARCHAR(100), IsOMExceptionRequired bit,IsAMB bit,IsARS bit,escalationtypeid int, CategorySortOrder int, SubcategorySortorder int);
INSERT INTO #temp ([Description], SubDescription, IsOMExceptionRequired ,IsAMB,IsARS,escalationtypeid,CategorySortOrder,SubcategorySortorder)
SELECT C.Description,s.Description, S.IsOMExceptionRequired,s.IsAMB,s.IsARS,CEM.escalationtypeid, c.SortOrder,s.SortOrder
FROM category C
INNER JOIN SubCategory S on C.CategoryID =S.CategoryID
INNER JOIN CategoryEscalationTypeMap CEM on CEM.CategoryID= C.CategoryID
WHERE CEM.escalationtypeid=3 and CEM.IsActive =1 and C.IsActive=1 and S.IsActive=1
order by CEM.escalationtypeid, C.sortorder,S.sortorder;
--select * from #temp;
WITH Temp
AS (
SELECT
Description,
SubDescription,
ROW_NUMBER() OVER ( PARTITION BY Description
ORDER BY Description ) rownumber,
IsOMExceptionRequired,
IsAMB,
IsARS,
escalationtypeid,
CategorySortOrder,
SubcategorySortorder
FROM #Temp
)
SELECT
CASE WHEN Temp.rownumber = 1 THEN Description ELSE '' END [Description],
rownumber,
SubDescription,
CASE WHEN IsOMExceptionRequired = 1 THEN 'YES' ELSE 'N/A' END xxx,
IsAMB,
IsARS,
escalationtypeid,
CategorySortOrder,
SubcategorySortorder
FROM Temp
order by escalationtypeid,CategorySortOrder,SubcategorySortorder;
但实际上我的结果如下
如果确实需要返回动态列名,请构建一个动态查询。
创建一个包含您的查询的nvarchar,从适当的源中绘制列标题,并使用执行。您可以在前端执行该操作。我必须通过sql实现这一点,任何答案都非常感谢……然后使用[Blah Blah]作为列名,但这将是一件奇怪的事情。假设您的描述是固定的,您可以使用。如果它们没有被修复,您将需要实现Thank you Alex,这是通过dynamic pivot完美实现的。你提供的链接非常有用。这个答案太模糊/笼统。你至少应该建议使用枢轴。