作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我的数据透视表中不存在另一个值,我想要做的是提供一个值。
数据透视表
SELECT *
FROM MyTable
PIVOT ( MAX(Number) for Total in ([Bob], [Jim], [Carol], [Simon])) as MaxValue
Item | Bob | Jim | Carol | Simon
Item1 3 4 7
Item2 2 9 1
Item3 5
Item | Bob | Jim | Carol | Simon
Item1 3 4 X 7
Item2 2 9 1 X
Item3 X X X 5
COALESCE
如果用户被分配了该项目,则将“X”放在那里,如果没有,则没有。虽然我不知道如何做到这一点。也许这是错误的方法。如果我泄露了一些信息,请告诉我。谢谢!
最佳答案
是的,您可以使用 COALESCE
在最终选择列表中替换 null
带有 X
的值:
SELECT Item,
coalesce([Bob], 'X') Bob,
coalesce([Jim], 'X') Jim,
coalesce([Carol], 'X') Carol,
coalesce([Simon], 'X') Simon
FROM MyTable
PIVOT
(
MAX(Number)
for Total in ([Bob], [Jim], [Carol], [Simon])
) as MaxValue
Total
的数据类型列,您可能需要强制转换/转换值,以便可以用字符串替换空值。
SELECT Item,
coalesce(cast([Bob] as varchar(10)), 'X') Bob,
coalesce(cast([Jim] as varchar(10)), 'X') Jim,
coalesce(cast([Carol] as varchar(10)), 'X') Carol,
coalesce(cast([Simon] as varchar(10)), 'X') Simon
FROM MyTable
PIVOT
(
MAX(Number)
for Total in ([Bob], [Jim], [Carol], [Simon])
) as MaxValue
| ITEM | BOB | JIM | CAROL | SIMON |
-------------------------------------
| item1 | 3 | 4 | X | 7 |
| item2 | 2 | 9 | 1 | X |
| item3 | X | X | X | 5 |
关于sql-server - SQL Server : how can I use COALESCE with a PIVOT table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789738/
我是一名优秀的程序员,十分优秀!