儲存過程中拼寫sql並執行

2022-06-06 07:27:10 字數 1264 閱讀 2693

直接上**吧,根據不同的條件拼寫sql後並執行

alter procedure [dbo].[usp_statistic_wjb_dzsk_zt]

( @year

int,

@half

int,--0表示全年,1表示上半年,2下半年

@isall

int --0表示只統計黨政幹部人員,1表示統計全部)as

declare @sql nvarchar(

4000

)set @sql=n'

select id from

chgrwpj

where id in(select distinct parentid from chgrymd'

if(@isall=0

)set @sql=@sql + n'

where ((unitcode between

''a0000

''and

''a0025

'') or (unitcode between

''b0041

''and

''b0044

'') or unitcode=

''a1206

''or unitcode=

''b0003

''or unitcode=

''b0017

''or unitcode=

''b0034

''or (unitcode=

''b0045

''and positionlevel<=6 and positionlevel>0 and positionname<>

''驗船師

''))

'set @sql=@sql + n'

) and inneramount'

if(@half=1

)set @sql=@sql + n'

and month(enddate) between 1 and 6

'else

if(@half=2

)set @sql=@sql + n'

and month(enddate) between 7 and 12

'set @sql=@sql + n'

order by senddate asc

'exec sp_executesql @sql,n'

@year int,@half int

',@year,@half

return

MySQL 儲存過程中執行動態 SQL 語句

mysql 02mysql delimiter 03mysql 04mysql createprocedureset col value 05 in tablevarchar 128 06 in columnvarchar 128 07 in new valuevarchar 1000 08 in ...

oracle儲存過程中如何執行動態SQL語句

有時需要在oracle儲存過程中執行動態sql語句 例如表名是動態的,或字段是動態的,或查詢命令是動態的,可用下面的方法 set serveroutput on declare n number sql stmt varchar2 50 t varchar2 20 begin execute imm...

儲存過程動態組裝sql並執行

最近要做一些非常奇葩的報表,眼前的資料 結構需要經過多次的查詢 組裝 拆散 再組裝等繁瑣的步驟才能匯出給出的指定格式的報表,由於程式處理起來非常複雜且容易出錯,再加上此次做的功能報表並不要求時效性,所以完全可以寫乙個儲存過程來處理。儲存過程中的sql涉及到一些多次行專列與列轉行的反覆操作,此中除了寫...