SQL 语句里面 复合查询

你的问题和这个类似,可以参考一下完成你自己的存储过陈个:

该存储过程是从某结点n开始找到最上层的父亲结点,这种经常用到的过程可以由存储过程来担当,在网页中重复使用达到共享。

空:表示该结点为顶层结点

fjdid(父结点编号)

结点n 非空:表示该结点的父亲结点号

dwmc(单位名称)

CREATE proc search_dwmc @dwidold int,@dwmcresult varchar(100) output
as
declare @stop int
declare @result varchar(80)
declare @dwmc varchar(80)
declare @dwid int
set nocount on
set @stop=1
set @dwmc=""
select @dwmc=dwmc,@dwid=convert(int,fjdid) from jtdw where id=@dwidold
set @result=rtrim(@dwmc)
if @dwid=0
set @stop=0
while (@stop=1) and (@dwid<>0)
begin
set @dwidold=@dwid
select @dwmc=dwmc,@dwid=convert(int,fjdid) from jtdw where id=@dwidold
if @@rowcount=0
set @dwmc=""
else
set @result=@dwmc+@result
if (@dwid=0) or (@@rowcount=0)
set @stop=0
else
continue
end
set @dwmcresult=rtrim(@result)

使用exec pro-name [pram1 pram2.....]
试试这样:
sqlStr.append("select * from pj where #lx#='"+value+"' or '"+value+"'=''");
或者:
select * from pj where #lx#='value' or 'value'=''

注意VALUE是您的控件值

=====================
那就是:
select from pj where (idb or b='') ;
你这个可以直接把参数传递到里面进行查询啊.

比如用PB的数据窗口:
定义传递参数类型,比如DATE LL

SELECT * FROM PJ WHERE LX=:LL
用存储过程作啊,判断入参的值为空,用if语句处理下
select * from pj wehere #lx# LIKE '%'+@VALUE+'%'