SQLserver2005部分特性小結(jié)
關(guān)于SQLserver2005的特性,我在下邊給大家介紹下。首先給出T-SQL腳本。
建立一張測試表:
- CREATE TABLE TestTable (
- Column1 varchar(1),
- Column2 int
- )
加入一些測試數(shù)據(jù):
- INSERT INTO TestTable VALUES ('A', 1);
- INSERT INTO TestTable VALUES ('A', 1); -- 重復
- INSERT INTO TestTable VALUES ('A', 2);
- INSERT INTO TestTable VALUES ('B', 1);
- INSERT INTO TestTable VALUES ('B', 2);
- INSERT INTO TestTable VALUES ('B', 2); --重復
- INSERT INTO TestTable VALUES ('C', 2);
使用sqlserver2005新特性刪除重復記錄:
- DELETE
- FROM TestTable
- WHERE TestTable.%%lockres%%
- NOT IN (SELECT MIN(b.%%lockres%%)
- FROM TestTable b
- GROUP BY b.column1, b.Column2);
sqlserver2008新特性刪除重復記錄:
- DELETE
- FROM TestTable
- WHERE TestTable.%%physloc%%
- NOT IN (SELECT MIN(b.%%physloc%%)
- FROM TestTable b
- GROUP BY b.column1, b.Column2);
當然了如果TestTable 具備主鍵(假設(shè)主鍵為ID且identity(1,1)),我們可以通過傳統(tǒng)的T-SQL語句獲取不重復的記錄:
- --建立主鍵
- alter table TestTable with nocheck add
- id int identity(1,1) primary key
- go
- --取唯一記錄
- select min(ID)from TestTable
- group by column1, column2
- go
SQLSERVER2005隨機取數(shù)據(jù):
- select top 3 * from TestTable order by newid()
上述語句每次從TestTable內(nèi)取出的3條隨機記錄。
SQLSERVER2005 row_number 函數(shù):
該函數(shù)主要用于sql分頁方面,給出簡單范例代碼:
- select * from(
- select id, column1, column2, row_number() OVER(order by id desc ) as row from TestTable
- ) a
- where row between 1 and 3
這里id為 TestTable 的自增主鍵,每次按主鍵id降序后取前三條數(shù)據(jù)行。
查看SQLSERVER2005版本:
- SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition'
這里給出不同版本的SQLSERVER2005版本:
RTM版:
sp3版:
SQLSERVER2005所有版本:
發(fā)行版Sqlservr.exe
RTM2005.90.1399
SQL Server 2005 Service Pack 12005.90.2047
SQL Server 2005 Service Pack 22005.90.3042
SQL Server 2005 Service Pack 32005.90.4035
***,希望本文可以給您帶來幫助。
原文:http://www.cnblogs.com/ryanding/archive/2011/02/22/1961278.html
【編輯推薦】