永洪社区

标题: 数据集传参 [打印本页]

作者: yhdata-000    时间: 2022-7-7 15:36
标题: 数据集传参
查询日期 and  [ (到期>到期开始 and 到期<到期结束) or (回售>回售开始 and 回售<回售结束)]
到期开始 结束 和回售 开始 结束 有可能不选 是空值


这样写 到期开始 结束 和 回售开始结束 不选日期 会报错


where 1=1
and (<查询日期> 日期 = ?{查询日期}</查询日期>


(<到期开始> and 到期 >=?{到期开始}</到期开始>
  <到期结束> and 到期 <=?{到期结束}</到期结束>
or
(<回售开始> and 回售 >=?{回售开始}</回售开始>
  <回售结束> and 回售 <=?{回售结束}</回售结束>))


作者: jindawei    时间: 2022-7-7 15:54
本帖最后由 jindawei 于 2022-7-7 15:55 编辑

你好,建议给参数一个默认值。
作者: yhdata-000    时间: 2022-7-7 15:57
jindawei 发表于 2022-7-7 15:54
你好,建议给参数一个默认值。

页面有三个日期 都是文本参数  查询日期只有一个   回售和到期都是两个文本参数 开始 结束这些都在数据集进行传参

作者: yhdata-000    时间: 2022-7-7 15:59
jindawei 发表于 2022-7-7 15:54
你好,建议给参数一个默认值。

只有查询必选,到期/回售不要默认值
作者: jindawei    时间: 2022-7-7 16:11
你好,是你写的SQL格式不对,没有把and和or包进去。
作者: yhdata-000    时间: 2022-7-7 16:12
jindawei 发表于 2022-7-7 16:11
你好,是你写的SQL格式不对,没有把and和or包进去。

哪边没包进去?
作者: jindawei    时间: 2022-7-7 16:16
以这个为例子,and和or应该包含在标签中
作者: yhdata-000    时间: 2022-7-7 16:20
jindawei 发表于 2022-7-7 16:16
以这个为例子,and和or应该包含在标签中

这个应该是没有问题的,因为我全是and 的话是没问题的
作者: jindawei    时间: 2022-7-7 16:23
建议先试试看呢
作者: yhdata-000    时间: 2022-7-7 16:32
jindawei 发表于 2022-7-7 16:23
建议先试试看呢

你试一下这个吧,有这种写法;因为我这个要先and 再 or 再 and  比那个还要加一层 才在社区问的

作者: yhdata-000    时间: 2022-7-7 16:57
求各位大佬解决一下
作者: jindawei    时间: 2022-7-7 17:09
如where city=?{a},参数必须传值

此语句是直接用参数值替换"?{a}"的字符。如果a=北京,就替换成"where city=北京"。因此,a不能是空值,否则"where city="的语句就非法了。<a></a>中包含?{a}形式
例如<a>where city=?{a}</a>,参数可以不传值
此语句用<a></a>来标注此条where语句的起始位置,<></>里的内容要和参数的名字一样,要成对出现,不可嵌套使用。当a是空值的时候,会自动把此标签之内的语句删除,这个例子里where语句被删除,因此允许a为空。一般使用如下:
作者: jindawei    时间: 2022-7-7 17:11
重点是在标签里面的值如果空就会自动删除语句,不这样的话就按照原SQL执行报错。要不到期开始为空解析完就是 select ...... where 1=1 and and 到期 <= “到期结束的值”
作者: yhdata-000    时间: 2022-7-7 17:23
jindawei 发表于 2022-7-7 17:11
重点是在标签里面的值如果空就会自动删除语句,不这样的话就按照原SQL执行报错。要不到期开始为空解析完就 ...

然后我的问题
查询日期 and  [ (到期>到期开始 and 到期<到期结束) or (回售>回售开始 and 回售<回售结束)]
到期开始 结束 和回售 开始 结束 有可能不选 是空值   要成立的话,应该怎么修改或者怎么写呢
作者: Fiona    时间: 2022-7-7 21:21
where 1=1
<查询日期> and  日期 = ?{查询日期}</查询日期>
<到期开始> and 到期>=?{到期开始}</到期开始>
<到期结束> and 到期 <=?{到期结束}</到期结束>
<回售开始> or 回售 >=?{回售开始}</回售开始>
<回售结束> and 回售<=?{回售结束}</回售结束>

看看以上能不能满足业务场景把
作者: yhdata-000    时间: 2022-7-8 09:22
本帖最后由 yhdata-000 于 2022-7-8 09:59 编辑
Fiona 发表于 2022-7-7 21:21
where 1=1
and  日期 = ?{查询日期}
and 到期>=?{到期开始}

大佬,刚刚测试了一下还是差点;现在是好像是  查询 and 到期 or 回售 ;想要  查询 and (到期 or 回售 )现在查出来数据量是有差距的
这个and 和 or 是怎么关联的呀

作者: yhdata-000    时间: 2022-7-8 10:00
<查询日期> and  日期 = ?{查询日期}</查询日期>
<到期开始> and 到期>=?{到期开始}</到期开始>
<到期结束> and 到期 <=?{到期结束}</到期结束>
<查询日期> or日期 = ?{查询日期}</查询日期>
<回售开始> and回售 >=?{回售开始}</回售开始>
<回售结束> and 回售<=?{回售结束}</回售结束>
这样可以,但是还不怎么明白这个 and or ,是谁和谁and  




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4