sqlserver»ñÈ¡µÚnÐÐÊý¾Ý
ÈçºÎÔÚÒ»¸öûÓÐÖ÷¼üµÄ±íÖлñÈ¡µÚnÐÐÊý¾Ý£¬ÔÚsql2005ÖпÉÒÔÓÃrow_number£¬µ«ÊDZØÐëÖ¸¶¨ÅÅÐòÁУ¬·ñÔòÄã¾Í²»µÃ²»ÓÃselect intoÀ´¹ý¶Éµ½ÁÙʱ±í²¢Ôö¼ÓÒ»¸öÅÅÐò×ֶΡ£
ÓÃÓαêµÄfetch absoluteÓï¾ä¿ÉÒÔ»ñÈ¡¾ø¶ÔÐÐÊýϵÄijÐÐÊý¾Ý,²âÊÔ´úÂëÈçÏÂ:
set nocount on
--½¨Á¢²âÊÔ»·¾³²¢²åÈëÊý¾Ý£¬²¢ÇÒ±íûÓÐÖ÷¼ü
create table test(id int ,name varchar(10))
insert into test select 999,'jinjazz'
insert into test select 888,'csdn'
insert into test select 999,'sqlserver'
--ͨ¹ýÓαê»ñÈ¡¾ø¶ÔÐÐÊý
declare myCursor scroll cursor for select * from test
open myCursor
fetch absolute 3 from myCursor
close myCursor
deallocate myCursor
--ɾ³ý²âÊÔ»·¾³
drop table test
set nocount off
/*--
id name
----------- ----------
999 sqlserver
--*/
Ïà¹ØÎĵµ£º
SQLÓï¾äÈçÏÂ:
CREATE TABLE [dbo].[test_table] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[NAME] [varchar] (80)
)
Éè¼ÆÊÓͼÏÂ,ÔÚÌí¼ÓÒ»¸öINTÐ͵Ä×Ö¶ÎÊÇ,Ñ¡ÖÐÏ·½µÄ"±êʶ"Ϊ"ÊÇ",ÏÂÃæÓÐ"±êʶÖÖ×Ó"ºÍ"±êʶ×ÔÔöÁ¿",¿ÉÒÔ×Ô¼ºÉèÖÃ,ĬÈ϶¼Îª1
µ«ÊDz»ÖªµÀΪʲô,ʹÓÃÈÎÎ ......
SQL SERVERÊý¾Ý¿â¿ª·¢µÄ¶þʮһÌõ¾ü¹æ
Èç¹ûÄãÕýÔÚ¸ºÔðÒ»»ùÓÚSQL SERVER µÄÏîÄ¿£¬»òÕ߸ոսӴ¥SQL SERVER£¬Äã¿ÉÄܽ«ÃæÁÙһЩÊý¾Ý¿âÐÔÄܵÄÎÊÌâ¡£ÕâÆªÎÄÕ»áÌṩһЩÓÐÓõľÑé-----¹ØÓÚÈçºÎÐγɺõÄÉè¼Æ¡£
Ò»¡¢Á˽âÄãÓõŤ¾ß
²»ÒªÇáÊÓÕâÒ»µã£¬ÕâÊDZ¾ÎÄ×î¹Ø¼üµÄÒ»Ìõ¡£Ò²ÐíÄãÒ²¿´µ½ÓкܶàµÄSQL SERVER³ÌÐòԱûÓÐÕÆÎÕÈ«²¿µÄT- ......
MySQL:
SELECT column from table
ORDER BY RAND()
LIMIT 1
PostgreSQL:
SELECT column from table
ORDER BY RANDOM()
LIMIT 1
Microsoft SQL Server:
SELECT TOP 1 column from table
ORDER BY NEWID()
IBM DB2
SELECT column, RAND() as IDX
from table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY
Thanks Ti ......
SqlserverµÃµ½ºº×ÖÆ´ÒôÊ××Öĸ´æ´¢¹ý³Ì:
create function [dbo].[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)
--Èç¹û·Çºº×Ö×Ö·û£¬·µ»ØÔ×Ö·û
& ......
sqlserver2005Óйؼü×Öntile(x)ºÍover(partition by.. order by..)×Ó¾äÅäºÏ.
±ÈÈç»ñȡÿ¸ö±íµÄǰ10%¸ö×ֶΡ£
select id , name , colid , rn from (
select * , rn = ntile (10 )
over (partition by id order by colorder )
from syscolumns )t where rn = 1 ......