Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我希望CTE中的帮助从表值中显示标题名称_Sql_Sql Server - Fatal编程技术网

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完美实现的。你提供的链接非常有用。这个答案太模糊/笼统。你至少应该建议使用枢轴。