前言
虽然很笨但是高效的ClickHouse转JS拼接SQL语句的方法
步骤
- 首先要有能够运行的ClickHouse语句,这点直接在DBserver上边写边测试就行
- 直接在所写语句头尾添加若干语句与符号,组成如下形式(注意空格和格式问题)
function 接口名(paramMap) {
var sql = "所写的SQL语句 "+
" 所写的SQL语句 "+
" 所写的SQL语句 ";
return sql;
}
- 将所组成的基础JS语句放进中台对应的接口中进行测试,注意接口名要和中台中的名字相对应
- 若能够查询到数据,则继续添加语句,组成如下形式,此时还是要注意空格和格式问题
function 接口名(paramMap) {
var startTime = paramMap.get("startTime");
var endTime = paramMap.get("endTime");
var sql = "WITH total_days AS ( ";
if (startTime != null && startTime != '' && endTime != null && endTime != '') {
sql += "SELECT DATEDIFF('day', toDateTime('" + startTime + "'), toDateTime('" + endTime + "')) + 1 AS total_days ";
}
sql +=" 所写的SQL语句 "+
" 所写的SQL语句 "+
" 所写的SQL语句 "+
" 所写的SQL语句 "+
" 所写的SQL语句 "+
" 所写的SQL语句 "+
" 所写的SQL语句 "+
if (startTime != null && startTime != '') {
sql += " AND call_trying_time >= '" + startTime +"'\n";
}
if (endTime != null && endTime != '') {
sql += " AND call_trying_time <= '" + endTime +"'\n";
}
sql += " ) a \n";
sql += ") ";
return sql;
}
- 完善完毕后放入中台中,调用ApiFox进行测试即可。