多语言展示
当前在线:1291今日阅读:195今日分享:41

集深数据系统中参数与宏的区别

集深数据系统数据集和报表中经常会使用到参数和宏,现介绍一下这两者的区别。
工具/原料

集深数据系统

区别
1

书写方式不同       参数是以?或@为标识(其中复杂sql中书写参数时以?为标识,其他地方均为@)。       例如:SELECT a,b FROM T WHERE xxx=10 AND yyy=?y       宏是以${XXX}为标识。       例如:select * from demo_orders where ${orders}

2

起作用方式不同       参数起作用的方式是将外界传入的值传给参数名,例如:SELECT a,b FROM T WHERE xxx=10 AND yyy=?y,传入参数值3后为:SELECT a,b FROM T WHERE xxx=10 AND yyy=3。其中动态参数是先计算表达式后,将计算的值传给参数名。总之,无论是普通参数还是动态参数,传入的都是一个计算好的值。       宏起作用的方式是将宏的值直接替换sql中对应的标识,例如:select * from demo_orders where ${orders},宏的值为demo_orders.发货地区=华北,则会将宏的值直接替换${orders},结果为:select * from demo_orders where demo_orders.发货地区=华北。其中动态宏是先计算表达式后,将计算结果像普通宏一样,直接替换宏标识。总之,无论是普通宏还是动态宏,传入的都是一条字符串。

3

作用有所区别       参数的作用是通过为sql中传入条件值来实现数据的过滤功能,参数的作用仅限于此。       宏也可以向sql传入查询条件实现数据的过滤。       但宏还具有其他功能,例如使用通用查询的宏可以实现动态条件、动态表名等。       select * from demo_orders_${diqu}

推荐信息