以下是我的原始数据: raw data
我希望数据如下所示:pivoted data
select cvid, cid,67554,67555,67556,67557
from #temp2 pivot
(
max(lcd)
for qid in ([67554],[67555],[67556],[67557])
)as P
这是我试过的代码。需要帮助!
答案 0 :(得分:2)
两件事:确保您有一个可以转动的源表。源表将包含您要聚合的列。在这种情况下,我已经给它了别名' src'。其次,当您使用数字作为列名称时,请确保使用括号。或者,使用字母开始列名称。例如,[67554]为Col_67554。我在代码中提供了这个例子。
select cvid, cid,[67554] as Col_67554,[67555],[67556],[67557]
from
(select cvid, cid, lcd, qid from #temp2) as src
pivot
(
max(lcd) for qid in ([67554],[67555],[67556],[67557])
) p
答案 1 :(得分:2)
这是一种可能性,使用相当通用的语法:
function getPerms(str, depth=0) {
var words = [];
var permutations = [];
if(str.length == 0) {
permutations.push("");
return permutations;
}
var first = str.charAt(0);//get the first char
var reminder = str.slice(1);//remove the first char
words = getPerms(reminder, depth+1);
for(var i = 0; i < words.length; i++) {
for(var j = 0; j <= words[i].length; j++) {
var s = insertCharAt(words[i], first, j);
permutations.push(s);
}
}
return permutations;
}
function insertCharAt(word, c, i) {
var start = word.slice(0, i);
var end = word.slice(i);
var result = start + c + end;
return result;
}
console.log(getPerms("abc"));
我在SSMS for SQL Server 2012中进行了测试。
答案 2 :(得分:2)
如果您使用的是Oracle SQL,请尝试
select * from (
select cvid, cid, qid, lcd
from #temp2
) a
pivot
(
max(lcd)
for qid in (67554,67555,67556,67557)
) b
order by cvid;