我目前的结果
/url/to/the/page#tag2
我想要这个结果
Action Name Is Deleted
--------------------------------------
Account Detail Tap 0
Travel Insurance Tap 0
Blacklist Tap 0
我当前的查询
Account Detail Tap Travel Insurance Tap Blacklist Tap
-----------------------------------------------------------
0 0 0
答案 0 :(得分:2)
你似乎有点绝望......第一次和你的外科医生一样,你不想要一个眼花缭乱的编码器。
这会将子查询转换为一条记录。如果将ScreenID添加到子查询并删除WHERE部分,则可以获得更多记录
Select *
From (
SELECT [AM].ActionNameEnglish
, [RSM].IsDeleted
FROM ScreenMaster [SM]
INNER JOIN ActionMaster [AM] ON [SM].ScreenID = [AM].ScreenID
INNER JOIN RoleScreenMapping [RSM] ON [AM].ActionID = [RSM].ActionID
WHERE [SM].ScreenID = 1031 AND [RSM].IsDeleted = 0
) Src
Pivot (max(IsDeleted) for ActionNameEnglish in ([Account Detail Tap],[Travel Insurance Tap],[Blacklist Tap]) ) Pvt
答案 1 :(得分:1)
- 您可以像下面这样编写查询以动态获取列
CREATE TABLE #tbl (ActionName varchar(255), IsDeleted INT)
insert into #tbl values ('Account Detail Tap',0)
insert into #tbl values ('Travel Insurance Tap',0)
insert into #tbl values ('Blacklist Tap',0)
select * from #tbl
DECLARE @COL VARCHAR(1000)
DECLARE @Query VARCHAR(2000)
select @col = COALESCE(@col + ', ','') + QUOTENAME(ActionName)
from #tbl Group by ActionName
Set @Query='select * from (select [ActionName],IsDeleted from #tbl) src
PIVOT (Max(IsDeleted) FOR ActionName
IN ('+@col+')) pvt'
EXEC(@Query)
DROP TABLE #tbl