我有一个简单的查询,像这样:TSQL 2个可选参数
SELECT * FROM orders
返回所有的订单,简单。
我想为我的查询添加可选参数。
DECLARE @group INT;
SET @group = 1 --IT1
SELECT * FROM orders WHERE group = isnull(@group, group)
这也很好。
我的问题是,我需要像这样第二个参数:
DECLARE @group INT;
SET @group = 1 --IT1
DECLARE @department VARCHAR(8);
SET @department = 'IT'
SELECT * FROM orders WHERE /*and here add limitation with department*/ group = isnull(@group, group)
我Orders表列组,但没有列的部门。
情况如下: 我有2个组合框。一个用于部门,另一个用于小组。 在首先我必须选择:
- 所有
- IT
- CALL CENTER
当用户选择COMBO1东西二是填充。 如果他选择IT组组合框将有选择:
- 所有
- IT1
- IT2
如果用户从第一个组合部门,然后组选择很容易,因为我当时只检查组。
问题是他希望部门IT的所有订单。
下面是组是如何分配到各部门
- IT - 1,2,5
- CALL CENTER - 4,6
- PRINT - 3
任何想法?
新增:
我创建了这样的事情:
DECLARE @group INT;
SET @group = 1 --IT1
DECLARE @department VARCHAR(8);
SET @department = 'IT'
SELECT * FROM orders WHERE
(@department IS NULL OR (@department='IT' AND group IN (1,2,5)) OR (@department='PRINT' AND group =3))
AND
(@group IS NULL OR group = @group)
我不知道这是否是corrent,它在某种程度上工程:)
你能改变表格模式吗? – 2012-04-19 09:33:17
不幸的是:/ – Misiu 2012-04-19 09:36:46
SQL查询是在哪里定义和执行的? (这是一个.net程序吗?) – 2012-04-19 09:37:58