<< Click to Display Table of Contents >> 数据集中使用参数复制链接 |
1. SQL语句中
假设有个参数名为a的参数,可以以如下形式用在SQL中。
•直接?{a}形式
如where city=?{a},参数必须传值
此语句是直接用参数值替换"?{a}"的字符。如果a=北京,就替换成"where city=北京"。因此,a不能是空值,否则"where city="的语句就非法了。
•<a></a>中包含?{a}形式
例如<a>where city=?{a}</a>,参数可以不传值
此语句用<a></a>来标注此条where语句的起始位置,<></>里的内容要和参数的名字一样,要成对出现,不可嵌套使用。当a是空值的时候,会自动把此标签之内的语句删除,这个例子里where语句被删除,因此允许a为空。一般使用如下:
select * from coffee where 1=1 <m>and market in ?{m}</m>
select * from coffee <m>where market like ?{m}</m>
➢例如:
select * from coffee where 1=1 <m>and market in ?{m}</m>,当m为空值的时候,则执行SQL:例如select * from coffee where 1=1;
select * from coffee <m>where market like ?{m}</m>,当m为空值的时候,则执行SQL:select * from coffee;
如果需要进行模糊查询,注意需要把模糊查询的匹配字符放在参数中,不能将参数写在引号内,如select * from coffee <m>where market like ?{m}</m>,然后在m中的值传入%market%,则执行SQL:select * from coffee where market like '%market%'。
•?{@a},内嵌参数形式
这种内嵌的参数将被直接在SQL Statement中替换为参数值,而不是调用prepared statement.setParam(),这种办法有更高的灵活性,例如可以不要select而是将select子句作为参数传入, 或者将表名作为参数,如 select * from ?{@a}, a可以是任意输入的table name。
2. Mongo数据集的管道语句中、Neo4j数据集的Cypher语句中、RESTful数据集的JSON查询语句中、RESTful数据集的请求体中
直接?{a}形式,语句里的参数将被直接替换为参数值进行执行。
例如:
管道语句:[{$project: { _id : 0, marke?{t}: 1, sale_date:1, product_type:1, product:1, market_size:1, date_time:1, sales:1, cogs:1, datetime:1}}]
Cypher语句:match (n:Person) where n.born in [?{borns}] return n.name as name, n.born as born order by n.born, n.name
JSON查询语句:$.store.book[?(@.price<?{abc})]
包括数据集右侧pane里的过滤、组合数据集节点上的过滤、多维数据集维度字段上的过滤。
可以在过滤条件中输入或选择参数来进行过滤,包括产品内置的参数或者用户自建的参数,例如在这里输入参数?{a}。
刷新参数输入参数值为“白金会员”后,预览的数据详情就会只过滤出会员等级为白金会员的数据:
可以在数据治理-计算列功能中,以 param['参数名']的样式将参数加入计算列。
1)原始数据如图:
2)创建图示计算列并设置参数a的值为10:
3)得到的计算列值预览:
5. 分析算法中
数据集上新建分析算法,选择定制,在脚本输入R的脚本语法,支持param['*']传参。
如:
x<-col[['身高']];
y<-col[['体重']];
model <- lm(formula = y ~ x)
CI <- unname(predict(model, data.frame(x=param[['height']]), level=0.95, interval="confidence"))
result<- list(out1=CI[1],out2=CI[2],out3=CI[3])