带判断逻辑的SQL

DECLARE
 v_flag  NUMBER;
BEGIN

v_flag :=0;

SELECT  COUNT(*) into v_flag FROM FlowPARAMATER WHERE form_kind_id='HCM.FORM.28'AND PARAMATERCODE='1002' AND PARAMATERESULT='1';

IF v_flag>0 THEN

Delete SYSPERSONGROUP WHERE GROUPID='f47e6e25-9279-451b-81fd-be34b3920400';

Insert Into SYSPERSONGROUP( GROUPID, GROUPTYPEID, GROUPNAME, GROUPDESCRIBE, effectdate, creationtime, createdby, lastupdatetime, lastupdatedby, FUNCTIONID, MAPPINGID) Values ( 'f47e6e25-9279-451b-81fd-be34b3920400', '7', '默认强制加班比对的群组', '1002转1011的数据', to_date('1900-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss'), to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', '010170', '1011');

Delete SYSPERSONGROUPITEM WHERE GROUPID='f47e6e25-9279-451b-81fd-be34b3920400';

Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( 'f47e6e25-9279-451b-81fd-be34b3920400', 2, '0', 1, to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa');
Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( 'f47e6e25-9279-451b-81fd-be34b3920400', 14, '1', 0, to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa');
Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( 'f47e6e25-9279-451b-81fd-be34b3920400', 14, '2', 0, to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa');
Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( 'f47e6e25-9279-451b-81fd-be34b3920400', 14, '3', 0, to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa');
Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( 'f47e6e25-9279-451b-81fd-be34b3920400', 14, '4', 0, to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa');
Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( 'f47e6e25-9279-451b-81fd-be34b3920400', 14, '5', 0, to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa');
Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( 'f47e6e25-9279-451b-81fd-be34b3920400', 14, '6', 0, to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa', to_date('2012-11-14 09:44:40', 'yyyy-mm-dd hh24:mi:ss'), 'sa');

commit;

end if;
END;

 带游标的

DECLARE 
v_groupID NVARCHAR2 (40);
CURSOR cursor_1
    IS
    SELECT  SYSPERSONGROUP.GROUPID 
    FROM    SYSPERSONGROUP
    INNER JOIN ATDOVERTIMEUPPERLIMITGROUP ON SYSPERSONGROUP.MAPPINGID = ATDOVERTIMEUPPERLIMITGROUP.GROUPID;
BEGIN 
    OPEN cursor_1 ;
    BEGIN
        LOOP
            FETCH cursor_1
              INTO v_groupID;
            EXIT WHEN cursor_1%NOTFOUND;

            BEGIN
                Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( v_groupID, 14, N'1', 0, sysdate, N'sa', sysdate, N'sa');
                Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( v_groupID, 14, N'2', 0, sysdate, N'sa', sysdate, N'sa');
                Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( v_groupID, 14, N'3', 0, sysdate, N'sa', sysdate, N'sa');
                Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( v_groupID, 14, N'4', 0, sysdate, N'sa', sysdate, N'sa');
                Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( v_groupID, 14, N'5', 0, sysdate, N'sa', sysdate, N'sa');
                Insert Into SYSPERSONGROUPITEM( GROUPID, CONDITIONTYPE, CONDITIONVALUE, ISINSUB, creationtime, createdby, lastupdatetime, lastupdatedby) Values ( v_groupID, 14, N'6', 0, sysdate, N'sa', sysdate, N'sa');
            END;
        END LOOP;
    END;
    IF cursor_1%ISOPEN
    THEN
        CLOSE cursor_1;
    END IF;
  
END;

commit;

 SQL SERVER

DECLARE @flag INT;
SET @flag = 0;
SELECT @flag=COUNT(*) FROM FlowPARAMATER WHERE form_kind_id='HCM.FORM.28' AND PARAMATERCODE='1002' AND PARAMATERESULT='1';
IF @flag>0
BEGIN 
 Delete SYSPERSONGROUP WHERE GROUPID='f47e6e25-9279-451b-81fd-be34b3920400';
Insert Into SYSPERSONGROUP( [GROUPID], [GROUPTYPEID], [GROUPNAME], [GROUPDESCRIBE], [effectdate], [creationtime], [createdby], [lastupdatetime], [lastupdatedby], [FUNCTIONID], [MAPPINGID]) Values ( N'f47e6e25-9279-451b-81fd-be34b3920400', N'7', N'默认强制加班比对的群组', N'1002转1011的数据', '1900-01-01 00:00:00', '2012-11-14 09:44:40', N'sa', '2012-11-14 09:44:40', N'sa', N'010170', N'1011');

Delete SYSPERSONGROUPITEM WHERE GROUPID='f47e6e25-9279-451b-81fd-be34b3920400';
Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( N'f47e6e25-9279-451b-81fd-be34b3920400', 2, N'0', 1, '2012-11-14 09:44:40', N'sa', '2012-11-14 09:44:40', N'sa');
Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( N'f47e6e25-9279-451b-81fd-be34b3920400', 14, N'1', 0, '2012-11-14 09:44:40', N'sa', '2012-11-14 09:44:40', N'sa');
Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( N'f47e6e25-9279-451b-81fd-be34b3920400', 14, N'2', 0, '2012-11-14 09:44:40', N'sa', '2012-11-14 09:44:40', N'sa');
Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( N'f47e6e25-9279-451b-81fd-be34b3920400', 14, N'3', 0, '2012-11-14 09:44:40', N'sa', '2012-11-14 09:44:40', N'sa');
Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( N'f47e6e25-9279-451b-81fd-be34b3920400', 14, N'4', 0, '2012-11-14 09:44:40', N'sa', '2012-11-14 09:44:40', N'sa');
Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( N'f47e6e25-9279-451b-81fd-be34b3920400', 14, N'5', 0, '2012-11-14 09:44:40', N'sa', '2012-11-14 09:44:40', N'sa');
Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( N'f47e6e25-9279-451b-81fd-be34b3920400', 14, N'6', 0, '2012-11-14 09:44:40', N'sa', '2012-11-14 09:44:40', N'sa');

END;

 带游标的SQL

DECLARE @groupID VARCHAR(40);
DECLARE cursor_1 CURSOR LOCAL FORWARD_ONLY FOR			
SELECT  SYSPERSONGROUP.GROUPID 
FROM    SYSPERSONGROUP
INNER JOIN ATDOVERTIMEUPPERLIMITGROUP ON SYSPERSONGROUP.MAPPINGID = ATDOVERTIMEUPPERLIMITGROUP.GROUPID
BEGIN 
    OPEN cursor_1 ;
    L1:
    FETCH NEXT FROM cursor_1 INTO @groupID ;
    WHILE @@FETCH_STATUS = 0 
        BEGIN
			Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( @groupID, 14, N'1', 0, GETDATE(), N'sa', GETDATE(), N'sa');
			Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( @groupID, 14, N'2', 0, GETDATE(), N'sa', GETDATE(), N'sa');
			Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( @groupID, 14, N'3', 0, GETDATE(), N'sa', GETDATE(), N'sa');
			Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( @groupID, 14, N'4', 0, GETDATE(), N'sa', GETDATE(), N'sa');
			Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( @groupID, 14, N'5', 0, GETDATE(), N'sa', GETDATE(), N'sa');
			Insert Into SYSPERSONGROUPITEM( [GROUPID], [CONDITIONTYPE], [CONDITIONVALUE], [ISINSUB], [creationtime], [createdby], [lastupdatetime], [lastupdatedby]) Values ( @groupID, 14, N'6', 0, GETDATE(), N'sa', GETDATE(), N'sa');
			BREAK;
        END ;
    CLOSE cursor_1 ;
    DEALLOCATE cursor_1 ;
END   

 

 

 

 

 

posted @ 2012-11-15 10:16  kevin_h_wang  阅读(709)  评论(0编辑  收藏  举报