hur.cn - 华软网

 热门搜索

不解决过不好年了!真是难题!高手帮忙吧

  作者:未知    来源:网络    更新时间:2019/6/11
开发环境:PB9+oracle8.17
PB数据窗口在查询模式下,我想建一个模糊查询的数据窗口.
查询的内容来源与表user_table,
user_table中有序号和姓名两个字段,
(注意:user_table表中有些记录的姓名字段是空的)

数据窗口中模糊查询的SQL以下:
例如模糊查询,select * from user_table where xm like '%sle_xm%',
我想要的查询结果是如果在窗口中录入"黄",那么当按下查询按钮的时候,user_table表中所有姓名字段含有黄的人员全数都能查询出来.这个我已经通过代码实现了。真正的问题在下面:


如果在窗口中什么也不录入,哪么当按下查询按钮的时候,将查询user_table表中所有的人员(*包括姓名字段为空的),请问查询按钮中的代码要怎么写,给出详细代码马上给分!


------华软网友回答------
select * from user_table where nvl(xm,' ') like '%sle_xm%'

把空值变为 空格 或其余的字符串 因该能够实现的
------华软网友回复------
sle_xm = trim(sle_xm)
if isnull(sle_xm) then 
sle_xm = ''
end if

select * from user_table where xm like '%sle_xm%'
------华软网友回复------
在不输入的时候,就是全数,就是xm like '%';
------华软网友回复------
赞成shui_windows()
------华软网友回复------
select * from user_table where xm like '%sle_xm%' and trim(xm) <> "" and xm is not null
------华软网友回复------
这个简单,你 if 判断一下没录入时就是 select * from user_table ,否则如楼上: select * from user_table where nvl(xm,' ') like '%sle_xm%'

------华软网友回复------
大家给出的结果没有一个是能够真正解决我的问题的,请大家仔细看完我上面的提问再回答好吗?求高手??????????????????????????????????????????????????????????????????????????????????????????????
------华软网友回复------
select * from user_table where xm like '%sle_xm%' or sle_xm=''
------华软网友回复------

if trim(sle_xm.text) = '' then
  select * from user_table;
else
  select * from user_table where xm like '%sle_xm%'
end if

------华软网友回复------
首先判断你录入的是否为空咯,然后分开来查询就好了啊~
------华软网友回复------
sle_xm = trim(sle_xm)
if isnull(sle_xm) then 
sle_xm = ''
end if

select * from user_table where xm like '%sle_xm%'
------华软网友回复------
回复人:jdsnhan(柳荫凉) ( 两星(中级)) 信誉:115  2007-2-9 8:40:48  得分:0


在不输入的时候,就是全数,就是xm like '%';

------------------------------------
正确结果都出来了 还问?      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。