Хорошо, давайте начнем с довольно жесткого:
function chunk(arr, n) {
return arr.slice(0,(arr.length+n-1)/n|0).
map(function(c,i) { return arr.slice(n*i,n*i+n); });
}
Который используется следующим образом:
chunk([1,2,3,4,5,6,7], 2);
Тогда у нас есть эта плотная редукционная функция:
function chunker(p, c, i) {
(p[i/this|0] = p[i/this|0] || []).push(c);
return p;
}
Используется следующим образом:
[1,2,3,4,5,6,7].reduce(chunker.bind(3),[]);
Так как котенок умирает, когда мы привязываем this
к числу, мы можем сделать ручное currying следующим образом:
// Fluent alternative API without prototype hacks.
function chunker(n) {
return function(p, c, i) {
(p[i/n|0] = p[i/n|0] || []).push(c);
return p;
};
}
Используется следующим образом:
[1,2,3,4,5,6,7].reduce(chunker(3),[]);
Затем все еще довольно тугая функция, которая делает все это за один раз:
function chunk(arr, n) {
return arr.reduce(function(p, cur, i) {
(p[i/n|0] = p[i/n|0] || []).push(cur);
return p;
},[]);
}
chunk([1,2,3,4,5,6,7], 3);
Лучше создать таблицу и поместить все пары значений и дел в таблицу.
после того, как вы можете использовать объединения для достижения твоя цель
Попробуйте,
Создайте еще одну таблицу, подобную этой
CREATE TABLE [dbo].[Table_1](
[Col2] [nvarchar](50) NULL,
[CaseVal] [nchar](10) NULL
) ON [PRIMARY]
Insert all the Distinct data what you have. Then write a sql like below
SELECT b.Col1, b.Col2, a.CaseVal TargetAliasColumnName
FROM Table_1 a inner join [dbo].[Table1] b on
a.col2=b.Col2
SQL, вероятно, слишком велик для компиляции. Если вы добавите значения регистра в таблицу, вы сможете делать то, что хотите.
tbl_case key_column, case_value
7c6014eb0000737090d972c0ad2520f7 xxxxx
SELECT table.key_value, tbl_case.case value
from table
join tbl_case on table.key_value = tbl_case.key_value; ----------