SQLʵÏÖÍêÈ«ÅÅÁÐ×éºÏ
---SQLʵÏÖÍêÈ«ÅÅÁÐ×éºÏ
create function F_strSpit(@s varchar(200)) returns table
as
return(
select value=substring(@s,i,num)+substring(@s,num-1+j,1)
from (select num=number from spt_values where type='p' and number<len(@s) and number>0)TA,
(select i=number+1 from spt_values where type='p' and number<len(@s)-1)TB,
(select j=number+2 from spt_values where type='p' and number<len(@s)-1)TC
where num-1+j<=len(@s) and j>i )
declare @s varchar(200)
set @s='ABCE'
select * from dbo.F_strSpit(@s) order by len(value),value
/*
value
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AB
AC
AE
BC
BE
CE
ABC
ABE
BCE
ABCE
£¨ËùÓ°ÏìµÄÐÐÊýΪ 10 ÐУ©
*/
drop function F_strSpit
Ïà¹ØÎĵµ£º
SQL Server 2000/2005 ÄêÔÂÈÕ¼ÆËã·½·¨
ͨ³££¬ÄãÐèÒª»ñµÃµ±Ç°ÈÕÆÚºÍ¼ÆËãһЩÆäËûµÄÈÕÆÚ£¬ÀýÈ磬ÄãµÄ³ÌÐò¿ÉÄÜÐèÒªÅжÏÒ»¸öÔµĵÚÒ»Ìì»òÕß×îºóÒ»Ìì¡£ÄãÃÇ´ó²¿
·ÖÈË´ó¸Å¶¼ÖªµÀÔõÑù°ÑÈÕÆÚ½øÐзָÄê¡¢Ô¡¢Èյȣ©£¬È»ºó½ö½öÓ÷ָî³öÀ´µÄÄê¡¢Ô¡¢ÈյȷÅÔÚ¼¸¸öº¯ÊýÖмÆËã³ö×Ô¼ºËùÐèÒªµÄÈÕÆÚ£¡ÔÚÕâÆªÎÄÕÂÀÎÒ½«¸æËßÄã
ÈçºÎÊ¹Ó ......
ÎÒÃÇÒª×öµ½²»µ«»áдSQL£¬»¹Òª×öµ½Ð´³öÐÔÄÜÓÅÁ¼µÄSQLÓï¾ä¡£
£¨1£©Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
OracleµÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚf ......
Èç¹ûÔÀ´µÄÊý¾Ý¿â¿ÉÓ㬷ÖÀëÊý¾Ý¿âºó£¬Ö»¸½¼ÓÊý¾ÝÎļþ£¬²»¸½¼ÓÈÕÖ¾
Èç¹û²»¿ÉÓã¬Ö»ÄÜÂýÂýµÈ»¹Ô²Ù×÷Íê³ÉÁË
ÈÕÖ¾ÎļþÌ«´óÁË£¬Ó¦¸Ã¶¨ÆÚÕûÀíÈÕÖ¾
--ѹËõÈÕÖ¾¼°Êý¾Ý¿âÎļþ´óС
&n ......
table a(id, type):
id type
----------------------------------
1 1
2 1
3 &n ......
SQL> select * from t1;
ID AGE
---------- ----------
1 20
2&nbs ......