这是一段用BCB写的程序代码
SELECT * FROM ZS_Banci B INNER JOIN
ZS_Ycl X ON B.gxIdB = X.gxIdYx INNER JOIN
ZS_ManhourPay M ON B.gxIdB = M.gxIdM INNER JOIN
ZS_Inhouse I ON B.gxIdB = I.gxIdI INNER JOIN
ZS_Shengchan S ON B.gxIdB = S.gxIdSc LEFT OUTER JOIN
(SELECT * FROM GXSystem..ZS_InfoPart LEFT JOIN
GXSystem..ZS_InfoYcl ON gxNameYclZ = gxNameY) DERIVEDTBL ON
B.gxNamePartB = DERIVEDTBL.gxNameZ
where
后边的就是根据界面上的某个ComboBox是否有值进行组合条件查询
我所困惑的就是碰上组合条件查询的存储过程该怎么写?
SELECT * FROM ZS_Banci B INNER JOIN
ZS_Ycl X ON B.gxIdB = X.gxIdYx INNER JOIN
ZS_ManhourPay M ON B.gxIdB = M.gxIdM INNER JOIN
ZS_Inhouse I ON B.gxIdB = I.gxIdI INNER JOIN
ZS_Shengchan S ON B.gxIdB = S.gxIdSc LEFT OUTER JOIN
(SELECT * FROM GXSystem..ZS_InfoPart LEFT JOIN
GXSystem..ZS_InfoYcl ON gxNameYclZ = gxNameY) DERIVEDTBL ON
B.gxNamePartB = DERIVEDTBL.gxNameZ
where
后边的就是根据界面上的某个ComboBox是否有值进行组合条件查询
我所困惑的就是碰上组合条件查询的存储过程该怎么写?
解决方案 »
- SQL查询结果异常、 向高手讨教。
- 存储过程的问题~~高手进~~
- 每天1萜
- 100分送,急,SQL Server 2000误更新了数据(update语句)如何用日志恢复操作前的数据??
- 如何找出指定数据库中的所有数据表名称
- 我想每天固定时间把远程的数据和本地SQL做一个同步..
- 关于数据库乱码的问题
- 如何在SQL Server2000数据库表中添加自增型主键?
- 数据库中数据的回复
- 快快帮帮我!我都急死了,哪位高手可以指点一下:在SQLSERVER 桌面版下是不是不能进行数据库备份?
- 有一句SQL,我死活看不出问题。大家帮忙,谢谢
- 老大们救命,请问怎么让现在安装的sqlserver2k 试用版不过期??
select * from table1
如果Edit1->Text!="";
则SQL语句变为select * from table1 where col1=Edit->Text;
就是如何在存储过程中加入判断性的选择呢?
存储过程如下:create procedure test
@where nvarchar(4000)as
declare @sql nvarchar(4000)
set @sql='SELECT * FROM ZS_Banci B INNER JOIN
ZS_Ycl X ON B.gxIdB = X.gxIdYx INNER JOIN
ZS_ManhourPay M ON B.gxIdB = M.gxIdM INNER JOIN
ZS_Inhouse I ON B.gxIdB = I.gxIdI INNER JOIN
ZS_Shengchan S ON B.gxIdB = S.gxIdSc LEFT OUTER JOIN
(SELECT * FROM GXSystem..ZS_InfoPart LEFT JOIN
GXSystem..ZS_InfoYcl ON gxNameYclZ = gxNameY) DERIVEDTBL ON
B.gxNamePartB = DERIVEDTBL.gxNameZ'
if(@where<>'')
set @sql=@sql+' where ' +@whereexec(@sql)go
select * from table1
如果Edit1->Text!="";
则SQL语句变为select * from table1 where col1=Edit->Text;
就是如何在存储过程中加入判断性的选择呢?------------if 条件
begin
...........
end
else
begin
..............
end
@where nvarchar(4000)as
declare @sql nvarchar(4000)
set @sql='SELECT * FROM ZS_Banci B INNER JOIN
ZS_Ycl X ON B.gxIdB = X.gxIdYx INNER JOIN
ZS_ManhourPay M ON B.gxIdB = M.gxIdM INNER JOIN
ZS_Inhouse I ON B.gxIdB = I.gxIdI INNER JOIN
ZS_Shengchan S ON B.gxIdB = S.gxIdSc LEFT OUTER JOIN
(SELECT * FROM GXSystem..ZS_InfoPart LEFT JOIN
GXSystem..ZS_InfoYcl ON gxNameYclZ = gxNameY) DERIVEDTBL ON
B.gxNamePartB = DERIVEDTBL.gxNameZ'
if(@where<>'')
set @sql=@sql+@whereexec(@sql)go
不能在存储过程里面直接通过判断等操作直接得出么?