选择列或if语句
问题描述:
我wan't根据具体的情况来显示的列/参数 我要的是选择列或if语句
if(@SelectFlag==true)
select name,Address,salary,CreatedBy from employee
else (@UpdateFlag==true)
select name,Address,salary from employee
-- in this case i don't require the column "CreatedBy"
我怎样才能使一个查询或存储过程看上述情况。 。
感谢&问候..
答
使用单=
和1
代替true
。
if @SelectFlag = 1
select name, Address, salary, CreatedBy from employee
else
if @UpdateFlag = 1
select name, Address, salary from employee
答
下面是创建存储过程的一个例子,也许你需要有只有一个参数,表示你有什么做
CREATE PROCEDURE procedurenameHere(@EventFlag INTEGER)
AS
-- @EventFlag
-- 1 for SELECT
-- 2 for UPDATE
IF @EventFlag = 1
SELECT name,Address,salary,CreatedBy
FROM employee
ELSE IF @EventFlag = 2
SELECT name,Address,salary, NULL AS CreatedBy
FROM employee
GO
执行:
EXEC procedurenameHere 1
+0
请传递两个参数到你的过程,否则会抛出错误'@ SelectFlag'和'@ UpdateFlag'是不确定的 – asifsid88 2013-02-12 06:51:58
答
尝试此
表:EMP
列:姓名,地址,工资,creditedBy
declare My_Block
p_select_flag emp.SelectFlag%type;
p_updateFlag emp.UpdateFlag%type;
BEGIN
select selectFlag into p_select_flag from emp where name='ASIF';
select update into p_updateFlag from emp where name='ASIF';
IF p_select_flag = 'TRUE' THEN
select name,Address,salary,CreatedBy from employee;
ELSIF UpdateFlag = 'TRUE' then
select name,Address,salary from employee;
END IF;
END My_Block
答
U可以与参数的SP内打电话,并通过一个参数作为FLAG作为整型:
使用single =和1,2而不是true。
1指示SELECT和2指示UPDATE
if @FLAG = 1
select name, Address, salary, CreatedBy from employee
else
if @FLAG = 2
select name, Address, salary from employee
你,这就是我需要什么..感谢Mikael .. – vstsdev 2013-02-12 07:01:17