¡¾×ª¡¿¹ØÓÚ"µÝ¹éÊ÷ÐβéѯSQL"µÄºÃÌû
-----------------------------------------------------------------------------------------------------------------------
create table tb(id varchar(3) , pid varchar(3) , name varchar(10))
insert into tb values('001' , null , '¹ã¶«Ê¡')
insert into tb values('002' , '001' , '¹ãÖÝÊÐ')
insert into tb values('003' , '001' , 'ÉîÛÚÊÐ')
insert into tb values('004' , '002' , '퓼')
insert into tb values('005' , '003' , 'ÂÞºþÇø')
insert into tb values('006' , '003' , '¸£ÌïÇø')
insert into tb values('007' , '003' , '±¦°²Çø')
insert into tb values('008' , '007' , 'Î÷ÏçÕò')
insert into tb values('009' , '007' , 'Áú»ªÕò')
insert into tb values('010' , '007' , 'ËɸÚÕò')
go
--²éѯָ¶¨½Úµã¼°ÆäËùÓÐ×Ó½ÚµãµÄº¯Êý
create function f_cid(@ID varchar(3)) returns @t_level table(id varchar(3) , level int)
as
begin
declare @level int
set @level = 1
insert into @t_level select @id , @level
while @@ROWCOUNT > 0
begin
set @level = @level + 1
insert into @t_level select a.id , @level
from tb a , @t_Level b
where a.pid = b.id and b.level = @level - 1
end
return
end
go
--µ÷Óú¯Êý²éѯ001(¹ã¶«Ê¡)¼°ÆäËùÓÐ×Ó½Úµã
select a.* from tb a , f_cid('001') b where a.id = b.id order by a.id
/*
id pid name
---- ---- ----------
001 NULL ¹ã¶«Ê¡
002 001 ¹ãÖÝÊÐ
003 001 ÉîÛÚÊÐ
004 002 퓼
005 003 ÂÞºþÇø
006 003 ¸£ÌïÇø
007 003 ±¦°²Çø
008 007 Î÷ÏçÕò
009 007 Áú»ªÕò
010 007 ËɸÚÕò
£¨ËùÓ°ÏìµÄÐÐÊýΪ 10 ÐУ©
*/
--µ÷Óú¯Êý²éѯ002(¹ãÖÝÊÐ)¼°ÆäËùÓÐ×Ó½Úµã
select a.* from tb a , f_cid('002') b where a.id = b.id order by a.id
/*
id pid name
---- ---- ----------
002 001 ¹ãÖÝÊÐ
004 002 퓼
£¨ËùÓ°Ï
Ïà¹ØÎĵµ£º
¡¡¡¡1. SQL ServerµÄϵͳ±í
¡¡¡¡MicrosoftµÄSQL ServerÊÇÒ»¸ö¿ÉÉìËõµÄ¸ßÐÔÄÜÊý¾Ý¿â¹ÜÀíϵͳ£¬×¨Îª·Ö²¼Ê½¿Í»§»ú/·þ
ÎñÆ÷»·¾³¶øÉè¼Æ£¬SQL Server¼¸ºõ½«ËùÓеÄÅäÖÃÐÅÏ¢¡¢°²È«ÐÔÐÅÏ¢ºÍ¶ÔÏóÐÅÏ¢¶¼´æ´¢ÔÚÁËËü×Ô
ÉíµÄϵͳ±íÖУ¬¶øÏµÍ³±í´æÔÚÓÚÿ¸ö¶ÀÁ¢µÄÊý¾Ý¿âÖУ¬´æ´¢Ò»¸öÌØ¶¨Êý¾Ý¿â¶ÔÏóÐÅÏ¢µÄϵͳ±í
ͨ³£³ÆÎªÊý¾Ý¿âĿ¼£¬M ......
Ó¦ÓÃÖз¢ÏÖsqlÖеÄand¼°orµÄÖ´ÐÐЧÂÊÎÊÌâ
£ó£ñ£ìÓï¾ä£¬ÎªÊ²Ã´°Ñ×îºóµÄ£ï£ò»»³É£á£î£ä£¬²éѯµÄ¾ÍºÜ¿ì£¬Ê¹ÓõÄÊÇmssql·¶ÀýÖÐnorthwindÊý¾Ý¿âΪÀý£¬
select * from Orders a left join [Order Details] b on a.orderid = b.orderid
where a.customerid like '%ics%' or b.productid in (42,72)
×·×ÙÁËÓï¾äµÄÖ´Ðз½°¸,·¢ÏÖ ......
SELECT g.rid, room_no, planed_count,cc from
(SELECT rid,room_no, planed_count from YC_HOTEL_ROOM_T ) r
left join
(SELECT rid,count(*) cc from YC_GUEST_INFO_T group by rid ) g
ON r.rid = g.rid WHERE planed_ ......
Student(S#,Sname,Sage,Ssex) ѧÉú±í
Course(C#,Cname,T#) ¿Î³Ì±í
SC(S#,C#,score) ³É¼¨±í
Teacher(T#,Tname) ½Ìʦ±í
ÎÊÌ⣺
1¡¢²éѯ“001”¿Î³Ì±È“002”¿Î³Ì³É¼¨¸ßµÄËùÓÐѧÉúµÄѧºÅ£»
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......
×î½üÒ»Ö±ÔÚÓÃjavascriptÔÚ×öÏîÄ¿
¿ÉÊÇ×ö×Å×ö×Å
¸Ð¾õºÜ¶à¹¦ÄÜ´úÂë¶¼ÊÇÖØ¸´µÄ¡£
±ÈÈç¶ÔjavascriptÊý×éµÄÅÅÐò
»¹ÓжÔÊý×éÊý¾ÝµÄɾѡÒÔ¼°·Ö×é
ËùÒÔ£¬ºóÀ´ÐËÖÂÒÔÉÏÀ´¡£
Ò»·¢²»¿ÉÊÕʰ¡£
дÁËÒ»¸öÄÜÔÚjavascriptÖÐÓ¦ÓÃµÄ SQL ¿â
ºóÀ´ÓÖÏ룬Ôõô²»ÄÜÓÃjavascriptÖ±½ÓÁ¬½ÓÊý¾Ý¿âÄØ£¿
ÓÖ×öÁËÒ»¸öjavascriptÖ±Á¬SqlÊý¾ÝµÄÀà¿â ......