SQL function
SQL code:
create function f_getOrgaChildIds_str_byRootId(@rootid varchar(5000))
returns varchar(5000)
AS
BEGIN
declare @childids varchar(5000)
declare @orgaid varchar(5000)
declare @table1 table(organizationid int)
declare @sql varchar(6000)
set @sql = 'select organizationid from organization where parentid in (' + @rootid+')'
insert into @table1 exec(@sql)
declare my_cursor cursor for
select organizationid from @table1
Open my_cursor
fetch my_cursor into @orgaid
select @childids=''
while @@fetch_status=0
begin
select @childids=@childids+@orgaid+','
fetch my_cursor into @orgaid
end
close my_cursor
deallocate my_cursor
--drop table #table1
if (@childids!='')
begin
select @childids= substring(@childids,1,len(@childids)-1)
declare @str varchar(5000)
select @str=dbo.f_getOrgaChildIds_str_byRootId(@childids)
set @childids=@childids+','+@str
end
return @childids
END
¼ì²éÓ﷨ʱͨ¹ýÁË£¬Ö´ÐÐÊDZ¨´í£º
SQL code:
ÏûÏ¢ 443£¬¼¶±ð 16£¬×´Ì¬ 14£¬¹ý³Ì f_getOrgaChildIds_str_byRootId£¬µÚ 11 ÐÐ
ÔÚº¯ÊýÄÚµÄ 'INSERT EXEC' ÖжԴø¸±×÷ÓõĻòÒÀÀµÓÚʱ¼äµÄÔËËã·ûµÄʹÓÃÎÞЧ¡£
²»ÄÜ»»´æ´¢¹ý³Ì£¬ÒòΪҪµÝ¹é£»º¯ÊýÀï²»ÄÜÓÃÁÙʱ±í¹þ
Õâ´íÎó¸ÃÔõô¸Ä¡¢Ôõô±äͨ£¿
²»ÄÜ»»´æ´¢¹ý³Ì£¬Òò
Ïà¹ØÎÊ´ð£º
´ó¼Ò°ïæ¿´¿´Õâ2¸ösqlÓï¾äÄĸö²éѯµÄËٶȸü¿ìµã¡£Ð»Ð»°ïæ¡£±È½Ï׿±¡£ÔÚ×öÐÔÄܲâÊÔ¡£
select * from
±íA LEFT OUTER JOIN ±íB ON (±íA.id || ' ' =±íB.id) ,±íC , ±íD, ±íE
WhereÆäËûÌõ¼þ
select * ......
ÔÚsqlÖÐʹÓÃoutputºÍ²»Ê¹ÓõÄÇø±ð£¿
ÀýÈ磺
ALTER PROCEDURE [dbo].[sp_1]
@SYS_LNNO varchar(20),
@SYS_CALLER varchar(20),
@SYS_ORGANIZE varchar(10), ......
СµÜÎÒÓÃADOÁ¬½ÓSQL server 2000Êý¾Ý¿â£¬È»ºóÔÚDBGridÖÐÏÔʾ£¬ÏÖÔÚÏë°ÑÔÚDBGridÖвéѯµ½µÄÊý¾ÝiPlot×÷ͼ£¬ÇëÎÊÈçºÎʵÏÖÔÚDBGridÖеÄÊý¾Ý¶ÁÈ¡£¬¶Á³öµÄÊý¾ÝÊÇSTRINGÀàÐ͵ģ¬ÈçºÎÓÐЧµÄת±ä³ÉÊý¾Ý¿âÖÐËù´æ´¢µÄDOUBLEÀàÐ ......
ÔÚOracleÖУ¬ÎÒÏë²éϵͳʱ¼äÒ»ÌìµÄÊý¾Ý£¬Ê¹ÓÃÕâ¸öÓï¾ä
select * from tablename
where create_time>SYSDATE-1
and create_time <SYSDATE
ÎÒÏë²é×òÌì00£º00µ½½ñÌì00£º00µÄsqlÔõôд£¬
» ......
Ò»Õűítable×Ö¶ÎF1ºÍF2
F1 F2
1 a
2 ......