我有一个返回对象属性的查询。我想要的是将属性转移到表中。我已经看到用于执行此类操作的数据透视表,但仅限于在数据透视表中的cols上执行聚合函数的情况。我也看过用于做同样事情的案例陈述。
由于您必须手动写出数据透视表中的每一列,因此每个列的工作量相对相同。一个人的优势和局限是什么?
答案 0 :(得分:5)
我同意肯。我不记得PIVOT
语法而没有引用BOL,另外它没有旧学校案例陈述那么灵活。你只能有一个聚合意味着不可能做类似的事情。
SELECT COUNT(CASE WHEN foo='bar' THEN foo END) AS bar_count,
SUM(CASE WHEN foo='bar' THEN foo END) AS bar_sum
FROM your_table
答案 1 :(得分:4)
我已经尝试了PIVOT并且没有看到任何优势,你仍然需要指定每一列的名称(如果我记得的话两次),并且语法远不如case语句那么直观。
尝试几次后,我回到了CASE。