例如,此SQL语句返回1k行
SELECT * FROM tableName WHERE someCondition
我的问题是:是否可以使用WHERE
1)将Resultset拆分为10个部分结果集,然后
第一。将返回0% - 10%,
第二。 10% - 20%,
等。
2)切割范围在50-150行之间
答案 0 :(得分:1)
如果您使用的是oracle数据库,这非常简单。
您可以使用ROWNUM关键字以下列方式完成此任务。
select * from
(
select tb.*,rownum t_count from table_name tb
) ss
where ss.t_count >= @min_value and ss.t_count <= @max_value
其中@min_value和@max_value是您想要获取数据的范围... 实际上它将适用于内部查询和临时表的概念。
这就是为什么它会在一次性中为所有数据提供良好的性能。
答案 1 :(得分:1)
我的问题是:是否可以使用 WHERE
我的回答是:是的,有可能。
其中一种解决方案是使用 function NomsStyleBotanique(){
const classeur = SpreadsheetApp.getActive(); // var Feuille = classeur.getSheetByName('Feuille 1');
var ligne = classeur.getCurrentCell().getRow();
var colonne = classeur.getCurrentCell().getColumn();
var range = classeur.getActiveRange();
var richTextValues = range.getRichTextValues().map(([a]) => {
var text = a.getText();
var pos = 0;
var myregEx = /,/g;
var Noms = text.split(myregEx);
var textStyleNomPlante = SpreadsheetApp.newTextStyle()
.setFontSize(10)
.setForegroundColor("black")
.setFontFamily("Times New Roman")
.setItalic(false)
.build();
var textStyleNomAuteur = SpreadsheetApp.newTextStyle()
.setFontSize(10)
.setForegroundColor("#616399") // ("grey")
.setFontFamily("Times New Roman")
.setItalic(true)
.build();
var nbPhrases = [];
var i =0;
while (Noms){ i++; nbPhrases.push(Noms[i]); // SpreadsheetApp.getUi().alert(Noms[i]);
for (var i=0;i<nbPhrases.length;i++){
var myarr = Noms[i].split(" ");
var Espace1 = myarr[0].length+1;
var Espace2 = myarr[1].length+1;
if (Noms[i]){
if ((Noms[i].indexOf("subsp") > 1) || (Noms[i].indexOf("var.") > 1)){
var Espace3 = myarr[2].length+1;
var Espace4 = myarr[3].length+1;
pos = Espace1+Espace2+Espace3+Espace4; }
else { pos = Espace1+Espace2; } // pos = text.match(new RegExp(/\\s/, 'g'))[2];
var position = pos;
if (position > -1){
var temp = a.getTextStyle(0, position - 1);
return [
SpreadsheetApp.newRichTextValue()
.setText(Noms[i])
.setTextStyle(0, position - 1, textStyleNomPlante)
.setTextStyle(position, Noms[i].length, textStyleNomAuteur)
.build()
];
}
return [SpreadsheetApp.newRichTextValue().setText(Noms[i]).setTextStyle(Noms[i].getTextStyle()).build()];
}
}
}
} // fin boucle
);
range.setRichTextValues(richTextValues);
}
函数。
MOD
函数返回一个数除以另一个数的余数,该函数接受两个参数:
MOD
MOD(dividend,divisor)
是要除以的文字数或数值表达式。dividend
是一个文字数或一个数字表达式,用于除以除数。特别是,将数据分成十部分,在您的示例中,如下所示:
divisor
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 1
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 2
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 3
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 4
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 5
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 6
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 7
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 8
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 9
SELECT * FROM tableName WHERE mod(INDEX_ID, 10) = 0
是来自 INDEX_ID
的 index。