带判断逻辑的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