SQL Select N to M Records (single Table)
È¡±íÀïnµ½mÌõ¼Í¼µÄ¼¸ÖÖ·½·¨:
1. Ö»ÐèÒª²éѯǰMÌõÊý¾Ý(0 to M),
1.1 ʹÓà top(M) ·½·¨:
select top(3) * from [tablename]
1.2 ʹÓà set rowcount ·½·¨:
http://msdn.microsoft.com/zh-cn/library/ms188774(SQL.90).aspx
set rowcount M
select * from [tablename]
set rowcount 0
ȨÏÞ ÒªÇó¾ßÓÐ public ½ÇÉ«³ÉÔ±×ʸñ¡£
ÒªÖ´ÐÐset rowcount 0, ·ñÔòÓ°ÏìÒÔºó²éѯµÈ.
2.²éѯNµ½MÌõÊý¾Ý(N to M),
2.1 ±íÀïÃæÓбêʶÁÐ
2.1.1
select top (M-N+1) * from [tablename] where [columnname] not in (select top (N) [columnname] from [tablename])
2.1.2 ÄæÐòÏÔʾ
select top N * from (select top M * from [tablename] order by [columnname]) temp order by [columnname] desc
2.1.3 ˳ÐòÏÔʾ
select * from (select top N * from (select top M * from [tablename] order by [columnname]) temp1 order by [columnname] desc) temp2 order by [columnname]
2.2 ±íÀïÓÐidentityÊôÐÔ
select * from [tablename] where identitycol between N and M
Èç[columnname]ΪidentityÊôÐÔ,Ôò¿ÉÒÔд³É:
select * from [tablename] where [columnname] between N and M
2.3 ±íÀïÃæÓбêʶÁÐ, ÀûÓÃÁÙʱ±í
IF Exists(Select 1 from sysObjects Where Name ='temptable' And Type In ('temptable','U'))
begin
drop table [temptable]
end
select top M * into [temptable] from [tablename] order by [columnname]
set rowcount N
select * from [temptable] order by [columnname] desc
set rowcount 0
drop table [temptable]
2.4 Èç¹ûtablenameÀïûÓÐÆäËûidentityÁУ¬ÄÇô£º
exec sp_dboption [DataBaseName] ,'select into/bulkcopy',true
IF Exists(Select 1 from sysObjects Where Name ='temptable' And Type In ('temptable','U'))
begin
drop table temptable
end
select identity(int) id0,* into [temptable] from [tablename]
select * from temp where id0 >= N and id0 <= M
drop table temptable
Èç¹ûÄãÔÚÖ´ÐÐselect identity(int) id0,* into [temp
Ïà¹ØÎĵµ£º
--------------------------------²éѯϵͳ¿âÖÐÊÇ·ñÓп⣨Óпâ¾Íɾ³ý´Ë¿â£©----------------------------------------------------
use master
if exists(select * from databases where name='¿âÃû')
drop database ¿âÃû
__________________________ ½¨Êý¾Ý¿â½¨±íµÄ»ù±¾¸ñʽ __________________ ......
1.ÓÃÒ»ÌõSqlÓï¾ä²éѯ³öÿÃŹ¦¿Î¶¼´óÓÚ80·ÖµÄѧÉúÐÕÃû
Name
Class
Result
ÕÅÈý
ÓïÎÄ
56
ÕÅÈý
Êýѧ
88
ÀîËÄ
ÓïÎÄ
92
ÀîËÄ
Êýѧ
100
ÍõÎå
ÓïÎÄ
88
ÍõÎå
Êýѧ
99
ÍõÎå
Ó¢Óï
99
-------------------------------------------------------------------------------
´ð°¸£º
SELECT DISTINCT nam ......
ÔÚSQL ServerÖУ¬Èç¹û°Ñ±íµÄÖ÷¼üÉèΪidentityÀàÐÍ£¬Êý¾Ý¿â¾Í»á×Ô¶¯ÎªÖ÷¼ü¸³Öµ¡£ÀýÈ磺
create table customers (
id int identity(1,1) primary key not null,
name varchar(15)
);
insert into customers(name) values("name1"),("name2");
select id from customers;
²éѯ½á¹ûΪ£º
id
---
1
2
ÓÉ´Ë¿ ......
create function fun_getPY(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)
set @PY=''
while len(@str)>0
begin
set @word=left(@str,1)
--Èç¹û·Çºº×Ö×Ö·û£¬·µ»ØÔ×Ö·û
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
......
Ó¦ÓóÌÐòͨ¹ýodbc,ado»òado.netÓësql serverÁ¬½Ó,ÎÞÂÛͨ¹ýÄÇÖÖ·½Ê½½øÐÐÁ¬½Ó,ÿһÖÖÁ¬½Ó·½Ê½,Ê×ÏÈÒªÉèÖõÄÊÇÁ¬½Ó´®¡£ÒÔϾÍ˵˵¼¸ÖÖ·½Ê½µÄÁ¬½Ó´®µÄÉèÖãº
ÏÈ˵˵odbcÁ¬½Ó,odbcÈ«³ÆÎª¿ª·ÅʽÊý¾Ý¿âÁ¬½Ó,ÊÇ΢Èí×îÔç·¢²¼µÄÊý¾Ý¿âÁ¬½Ó·½Ê½¡£Á¬½Ó´®¸ñʽÈçÏ£ºdriver={sql server};server=·þÎñÆ÷°²È«Ãû;uid=Óû§Ãû;pwd=ÃÜÂë;databa ......