sql²éѯ»ã×Ü
-
´¦Àí±íÖØ¸´¼Ç¼(²éѯºÍɾ³ý)
/*
*****************************************************************************************************************************************************
1¡¢Num¡¢NameÏàͬµÄÖØ¸´Öµ¼Ç¼,ûÓдóС¹ØÏµÖ»±£ÁôÒ»Ìõ
2¡¢NameÏàͬ,IDÓдóС¹ØÏµÊ±,±£Áô´ó»òСÆäÖÐÒ»¸ö¼Ç¼
ÕûÀíÈË£ºÖйú·ç(Roy)
ÈÕÆÚ:2008.06.06
*****************************************************************************************************************************************************
*/
--
1¡¢ÓÃÓÚ²éÑ¯ÖØ¸´´¦Àí¼Ç¼(Èç¹ûÁÐûÓдóС¹ØÏµÊ±2000ÓÃÉú³É×ÔÔöÁкÍÁÙʱ±í´¦Àí,SQL2005ÓÃrow_numberº¯Êý´¦Àí)
--
> --> (Roy)Éú³É測試數據
if
not
object_id
(
'
Tempdb..#T
'
)
is
null
drop
table
#T
Go
Create
table
#T(
[
ID
]
int
,
[
Name
]
nvarchar
(
1
),
[
Memo
]
nvarchar
(
2
))
Insert
#T
select
1
,N
'
A
'
,N
'
A1
'
union
all
select
2
,N
'
A
'
,N
'
A2
'
union
all
select
3
,N
'
A
'
,N
'
A3
'
union
all
select
4
,N
'
B
'
,N
'
B1
'
union
all
select
5
,N
'
B
'
,N
'
B2
'
Go
--
I¡¢NameÏàͬID×îСµÄ¼Ç¼(ÍÆ¼öÓÃ1,2,3),·½·¨3ÔÚSQl05ʱ£¬Ð§ÂʸßÓÚ1¡¢2
·½·¨1:
Select
*
from
#T a
where
not
exists
(
select
1
from
#T
where
Name
=
a.Name
and
ID
<
a.ID)
·½·¨2:
select
a.
*
from
#T a
join
(
select
min
(ID)ID,Name
from
#T
group
by
Name) b
on
a.Name
=
b.Name
and
a.ID
=
b.ID
·½·¨3:
select
*
from
#T a
where
ID
=
(
select
min
(ID)
from
#T
where
Name
=
a.Name)
·½·¨4:
select
a.
*
from
#T a
join
#T b
on
a.Name
=
b.Name
and
a.ID
>=
b.ID
group
by
a.ID,a.Name,a.Memo
having
count
(
1
)
=
1
·½·¨5:
select
*
from
#T a
group
by
ID,Name,Memo
having
ID
=
(
select
min
(ID)
from
#T
where
Name
=
a.Name)
·½·¨6:
select
Ïà¹ØÎĵµ£º
1=1»òÕß'a'='a'µÈµÈºãµÈʽÊÇT-SQLÖбí´ïtrueµÄ·½·¨¡£ÒòΪÔÚT-SQLÖÐûÓÐtrueÕâÑùµÄ¹Ø¼ü
×Ö»òÖµ£¬ËùÒÔÐèÒª½èÖúÕâЩºãµÈʽÀ´±í´ïtrueµÄ¸ÅÄî¡£
Ïà¶ÔµÄ£¬Í¬Ñù¿ÉÒÔʹÓÃ1<>1»òÕß1=2µÈÀ´±í´ïfalse¡£
ÔÚÓ¦ÓóÌʽµÄ°²È«ÐÔ·½Ã棬ʹÓÃÕâЩʽ×ÓÊÇSQL×¢ÈëµÄ»ù±¾ÔÀí£¬ËùÒÔÔÚÆ´½ÓSQLÓï¾äµÄʱºòÒª¹ýÂ˸÷ÖÖ¸÷ÑùµÄÃô¸Ð×Ö
·û¡£
µ±È» ......
--1. ´´½¨±í£¬Ìí¼Ó²âÊÔÊý¾Ý
CREATE TABLE tb(id int, [value] varchar(10))
INSERT tb SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc'
--SELECT * from tb
/**//*
id value
----------- ----------
1 aa
1 bb
2 aaa
......
ÎÒÃÇÒª×öµ½²»µ«»áдSQL,»¹Òª×öµ½Ð´³öÐÔÄÜÓÅÁ¼µÄSQL,ÒÔÏÂΪ±ÊÕßѧϰ¡¢ÕªÂ¼¡¢²¢»ã×ܲ¿·Ö×ÊÁÏÓë´ó¼Ò·ÖÏí£¡
£¨1£© Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
ORACLE µÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom× ......