queryDataSet中多条件过滤数据集的sql写法

原创 2005年05月29日 15:47:00

QueryDataSet qds = new QueryDataSet();
qds.setQuery(new QueryDescriptor(new Database(), "select from table where DECODE(:field,null,'a',:field || 'a') = field || 'a' ",pr, true, Load.ALL));
pr.addColumn("field", Variant.STRING, ParameterType.IN);
decode就是说如果field==null,就用'a'代替之,否则还是=field
但是如果数据库中一条记录的 字段field为null,就查不出来,因为如果是null,sql应该为 field is null,
我们想到如果是null,就加一字符常量 'a' 的方法可以解决此问题
注意:sql中 '' 不能和 null 匹配上。
另一方法:instr(decode(:para,null,tb.field,:para),tb.field)>0 ,估计没有直接用decode快

引用:
QueryDataSet qds = DM.getQds();
ParameterRow pr.setString("field", no); //接收查询条件页面传来的参数,赋给参数行(前面不能加"",否则就与dm里面的null,不匹配了,就查不出来,如果no为null,允许它是null,查所有的记录)

必须知道的SQL编写技巧,多条件查询不拼字符串的写法

在做项目中,我们经常遇到复杂的查询方法,要根据用户的输入,判断某个参数是否合法,合法的话才能当作过滤条件,我们通常的做法是把查询SQL赋值给一个字符串变量,然后根据判断条件动态的拼接where条件进行...

优化原则测试1:先执行过滤掉大部份数据的SQL语句,通过过滤条件搭配减少结果集;

版本信息 SQL> select * from v$version; BANNER ---------------------------------------------------...

将ipdata.dat 数据集导入 mysql 中并获取sql文件

1. 前言最近在看极客学院的视频, 看到有关数据库部分, 然后里面的老师给了一个 ipdata.sql 的数据库指令, 可以用来向mysql中导入ipdata数据, 可是, 我们没有拿到这个 sql ...

WindowForm数据集xsd的适配器TableAdapter配置动态的SQL

这个问题拖了我差不多一天的时间,郁闷,要是在java里面,可以很轻松就搞定了的 最近在开发WindowForm程序,里面有一个数据集DataSet感觉挺好用的,可以给这个数据集DataSet配置多个...

(6)birt笔记 - 通过传递变量来动态修改数据集SQL

其实想想这一篇应该写在前面一点的,主要懒癌发作… _ (:3」∠*)_。 给birt报表数据集传参数构建动态数据集的方式挺多的,这里介绍2种比较常用的: 1.通过?占位符传递参数实现 2.Jav...

Spark Sql,Dataframe和数据集指南

概述   Spark SQL是一个spark模块,主要用于结构化数据的处理。不像基础的spark RDD的API那么抽象,该接口能够对数据和数据的计算提供更多的信息。Spark SQL使用这些额外的信...

用不同的SQL语句查出多个结果存入一个数据集的同一个字段的代码例子

拖2个ADOQuery控件,qry2取不同sql语句提取出来的字段,传入qry1的数据集的一个字段。procedure TForm1.btn1Click(Sender: TObject); var ...

birt报表中设置数据集sql的问题,希望有人帮我解决这个疑问,不胜感激!

这几天使用birt做报表,至于birt做么玩的我就不想说了,刚用这个东西 我也不是很熟练,只是在用的时候发现一个问题感觉很不适用报表。 一般我们做报表的sql是这样写的: mysql> se...

mybatis针对Oracle数据库进行(单个或多个条件)批量操作(新增、修改、删除)的sql写法--mysql

1、批量新增:   [java] view plain copy "addMonthDutyIntoDB" parameterType="java.util.List"...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:queryDataSet中多条件过滤数据集的sql写法
举报原因:
原因补充:

(最多只允许输入30个字)