hur.cn - 华软网

 热门搜索

PB dw_1.setfilter 中怎样使用IN查询

  作者:未知    来源:网络    更新时间:2019/7/30
我在SQL数据库中建了个char 字段,里面贮存者 1,3,4,18,20 这样的数据.

dw_1.setfilter("'"+string(wparam)+"' in (workers_iddept)")

workers_iddept 是数据库中的数据,即{1,3,4,18,20}

string(wparam) = 1

然则总是查不到数据

那位大侠帮帮助.急等回复!
------华软网友回答------
setfilter是不能用in的
用case( x when a then b when c then d... else e)吧


dw_1.setfilter("case( wparam  when 1,3,4,18,20 then 1 else 0 ) = 1 ")

------华软网友回复------
你说的不太清楚
------华软网友回复------
照旧不行.
和dw_1.setfilter("'"+string(wparam)+"' in (workers_iddept)")
效果一样.
------华软网友回复------
写在where 条件里吧!


------华软网友回复------
似乎应该倒过来写
dw_1.setfilter("workers_iddept = '"+string(wparam)+"'")
------华软网友回复------
1.你需要明白一个观点,filter是对取到当地的dw或ds中的数据举行过滤,将filter掉的数据放到filter!数据区中不显示出来.
2.setfilter执行时其实不能到数据库中检索数据,只可明文写出数据.如:
#dw_1.setfilter("字符字段 in('a','b','c')");dw_1.filter();//只留住"字符字段"是"a","b"或"c"的数据;
#dw_1.setfilter("数字字段 in(1,2,3)");dw_1.filter();//只留住"数字字段"是1,2或3的数据;
3.看你的情况应该是2.中的第二种情况,根据猜想写出下面语句,看看能够不能够:
string ls_iddepts
ls_iddepts="1,3,4,18,20"//这里你能够通过检索数据拼接此字符串
dw_1.setfilter("数字字段 in ("+ls_iddepts+")")
dw_1.filter()

------华软网友回复------
晕 适才敲了半天 机器自动重启了!

setfilter能够用in

string workers_iddept
workers_iddept = "'1','3','4','18','20'"//如果字段是数值型 不用加单引号

dw_1.setfilter("列名 in (" + workers_iddept + ")")
dw_1.filter()

另外:你能够在数据窗口的设计界面中,rows-filter,打开filter窗口在里面设置条件 看看语法有没有问题
如:  列名 in ('1','3','4','18','20')



     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。