永洪报表传参的方式

SQl中的参数

假设有个参数名为a的参数,可以以如下形式用在SQL中。

1. 直接?{a}形式

如where city=?{a},参数必须传值

此语句是直接用参数值替换"?{a}“的字符。如果a=北京,就替换成"where city=北京”。因此,a不能是空值,否则"where city="的语句就非法了。

2. 中包含?{x}形式

例如where city=?{x},参数可以不传值

此语句用来标注此条where语句的起始位置,<>里的内容要和参数的名字一样,要成对出现,不可嵌套使用。当x是空值的时候,会自动把此标签之内的语句删除,这个例子里where语句被删除,因此允许x为空。一般使用如下:

select * from coffee where 1=1 and market in ?{m}

select * from coffee where market like ?{m}

➢例如:

select * from coffee where 1=1 and market in ?{m},当m为空值的时候,则执行SQL:例如select * from coffee where 1=1;

select * from coffee where market like ?{m},当m为空值的时候,则执行SQL:select * from coffee;

如果需要进行模糊查询,注意需要把模糊查询的匹配字符放在参数中,不能将参数写在引号内,如select * from coffee where market like ?{m},然后在m中的值传入%market%,则执行SQL:select * from coffee where market like ‘%market%’。

3. ?{@a},内嵌参数形式

这种内嵌的参数将被直接在SQL Statement中替换为参数值,而不是调用prepared statement.setParam(),这种办法有更高的灵活性,例如可以不要select而是将select子句作为参数传入, 或者将表名作为参数,如 select * from ?{@a}, a可以是任意输入的table name。

你可能感兴趣的:(零散问题,sql,数据库)