1. 程式人生 > >sql server常用函式

sql server常用函式

一、字元轉換函式
1ASCII()
返回字元表示式最左端字元的ASCII 碼值。在ASCII()函式中,純數字的字串可不用‘’括起來,但含其它字元的字串必須用‘’括起來使用,否則會出錯。

2CHAR()
將ASCII 碼轉換為字元。如果沒有輸入0 
~255 之間的ASCII 碼值,CHAR() 返回NULL 。

3LOWER()和UPPER()
LOWER()將字串全部轉為小寫;UPPER()將字串全部轉為大寫。

4STR()
把數值型資料轉換為字元型資料。
STR (<float_expression>[,length[, <decimal>]])
length 指定返回的字串的長度,

decimal 指定返回的小數位數。如果沒有指定長度,預設的length 值為10, decimal 預設值為0。
當length 或者decimal 為負值時,返回NULL;
當length 小於小數點左邊(包括符號位)的位數時,返回length 個
*
先服從length ,再取decimal ;
當返回的字串位數小於length ,左邊補足空格。

二、去空格函式
1LTRIM() 把字串頭部的空格去掉。

2RTRIM() 把字串尾部的空格去掉。

三、取子串函式
1left() 
LEFT (<character_expression>, <integer_expression>
)
返回character_expression 左起 integer_expression 個字元。

2RIGHT() 
RIGHT (<character_expression>, <integer_expression>)
返回character_expression 右起 integer_expression 個字元。

3SUBSTRING()
SUBSTRING (<expression>, <starting_ position>, length)
返回從字串左邊第starting_ position 個字元起length個字元的部分。

四、字串比較函式

1CHARINDEX()
返回字串中某個指定的子串出現的開始位置。
CHARINDEX (<’substring_expression’>, <expression>)
其中substring _expression 是所要查詢的字元表示式,expression 可為字串也可為列名錶達式。如果沒有發現子串,則返回0 值。
此函式不能用於TEXT 和IMAGE 資料型別。

2PATINDEX()
返回字串中某個指定的子串出現的開始位置。
PATINDEX (<%substring _expression%>, <column_ name>)其中子串表示式前後必須有百分號“%”否則返回值為0。
與CHARINDEX 函式不同的是,PATINDEX函式的子串中可以使用萬用字元,且此函式可用於CHAR、 
VARCHAR 和TEXT 資料型別。

五、字串操作函式
1QUOTENAME()
返回被特定字元括起來的字串。
QUOTENAME (<’character_expression’>[, quote_ character]) 其中quote_ character 標明括字串所用的字元,預設值為“[]”。

2REPLICATE()
返回一個重複character_expression 指定次數的字串。
REPLICATE (character_expression integer_expression) 如果integer_expression 值為負值,則返回NULL 。

3REVERSE()
將指定的字串的字元排列順序顛倒。
REVERSE (<character_expression>) 其中character_expression 可以是字串、常數或一個列的值。

4REPLACE()
返回被替換了指定子串的字串。
REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用string_expression3 替換在string_expression1 中的子串string_expression2。

5SPACE()
返回一個有指定長度的空白字串。
SPACE (<integer_expression>) 如果integer_expression 值為負值,則返回NULL 。

6STUFF()
用另一子串替換字串指定位置、長度的子串。
STUFF (<character_expression1>, <start_ position>, <length><character_expression2>)
如果起始位置為負或長度值為負,或者起始位置大於character_expression1 的長度,則返回NULL 值。
如果length 長度大於character_expression1 中 start_ position 以右的長度,則character_expression1 只保留首字元。

六、資料型別轉換函式
1CAST()
CAST (<expression>AS<data_ type>[ length ])

2CONVERT()
CONVERT (<data_ type>[ length ], <expression>[, style])

1)data_type為SQL Server系統定義的資料型別,使用者自定義的資料型別不能在此使用。
2)length用於指定資料的長度,預設值為30。
3)把CHAR或VARCHAR型別轉換為諸如INT或SAMLLINT這樣的INTEGER型別、結果必須是帶正號或負號的數值。
4)TEXT型別到CHAR或VARCHAR型別轉換最多為8000個字元,即CHAR或VARCHAR資料型別是最大長度。
5)IMAGE型別儲存的資料轉換到BINARY或VARBINARY型別,最多為8000個字元。
6)把整數值轉換為MONEY或SMALLMONEY型別,按定義的國家的貨幣單位來處理,如人民幣、美元、英鎊等。
7)BIT型別的轉換把非零值轉換為1,並仍以BIT型別儲存。
8)試圖轉換到不同長度的資料型別,會截短轉換值並在轉換值後顯示“+”,以標識發生了這種截斷。
9)用CONVERT()函式的style 選項能以不同的格式顯示日期和時間。style 是將DATATIME 和SMALLDATETIME 資料轉換為字串時所選用的由SQL Server 系統提供的轉換樣式編號,不同的樣式編號有不同的輸出格式。

七、日期函式
1day(date_expression) 
返回date_expression中的日期值

2month(date_expression)
返回date_expression中的月份值

3year(date_expression)
返回date_expression中的年份值

4DATEADD()
DATEADD (<datepart>, <number>, <date>)
返回指定日期date 加上指定的額外日期間隔number 產生的新日期。

5DATEDIFF()
DATEDIFF (<datepart>, <date1>, <date2>)
返回兩個指定日期在datepart 方面的不同之處,即date2 超過date1的差距值,其結果值是一個帶有正負號的整數值。

6DATENAME()
DATENAME (<datepart>, <date>)
以字串的形式返回日期的指定部分此部分。由datepart 來指定。

7DATEPART()
DATEPART (<datepart>, <date>)
以整數值的形式返回日期的指定部分。此部分由datepart 來指定。
DATEPART (dd, date) 等同於DAY (date)
DATEPART (mm, date) 等同於MONTH (date)
DATEPART (yy, date) 等同於YEAR (date)

8GETDATE()
以DATETIME 的預設格式返回系統當前的日期和時間。

9、Sql Server 中一個非常強大的日期格式化函式
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

常用:
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

八、統計函式

AVG ( ) -返回的平均價值
count( ) -返回的行數
first( ) -返回第一個值
last( ) -返回最後一個值
max( ) -返回的最大價值
min( ) -返回最小的價值
total( ) -返回的總和

九、數學函式
abs(numeric_expr)                   求絕對值
ceiling(numeric_expr)                取大於等於指定值的最小整數
exp(float_expr)                      取指數
floor(numeric_expr)                   小於等於指定值得最大整數
pi()                                  3.1415926.........
power(numeric_expr,power)            返回power次方      
rand([int_expr])                     隨機數產生器
round(numeric_expr,int_expr)         安int_expr規定的精度四捨五入
sign(int_expr)                      根據正數,0,負數,,返回+1,0,-1
sqrt(float_expr)                     平方根

十、系統函式
suser_name()       使用者登入名
user_name()        使用者在資料庫中的名字
user               使用者在資料庫中的名字
show_role()        對當前使用者起作用的規則
db_name()          資料庫名                    
object_name(obj_id) 資料庫物件名     
col_name(obj_id,col_id) 列名       
col_length(objname,colname)  列長度
valid_name(char_expr)     是否是有效識別符號

十一、以上函式的部分例項
1:replace 函式
第一個引數你的字串,第二個引數你想替換的部分,第三個引數你要替換成什麼
select replace('lihan','a','b')
                                                                 
-----------------------------
lihbn

(所影響的行數為 1 行)
=========================================================
2:substring函式
第一個引數你的字串,第二個是開始替換位置,第三個結束替換位置
select substring('lihan',0,3);
-----
li

(所影響的行數為 1 行)
=========================================================
3:charindex函式
第一個引數你要查詢的char,第二個引數你被查詢的字串 返回引數一在引數二的位置
select  charindex('a','lihan')
-----------
4

(所影響的行數為 1 行)

===========================================================
4:ASCII函式
返回字元表示式中最左側的字元的 ASCII 程式碼值。
select ASCII('lihan')
-----------
108

(所影響的行數為 1 行)

================================================================
5:nchar函式
根據 Unicode 標準的定義,返回具有指定的整數程式碼的 Unicode 字元。
引數是介於 0 與 65535 之間的正整數。如果指定了超出此範圍的值,將返回 NULL。
select nchar(3213)
----
unicode字元

(所影響的行數為 1 行)

=========================================================
6:soundex
返回一個由四個字元組成的程式碼 (SOUNDEX),用於評估兩個字串的相似性。
SELECT SOUNDEX ('lihan'), SOUNDEX ('lihon');
----- -----
L546  L542

(所影響的行數為 1 行)
=========================================================
7:char
引數為介於 0 和 255 之間的整數。如果該整數表示式不在此範圍內,將返回 NULL 值。
SELECT char(125)
----
}

(所影響的行數為 1 行)

==========================================================
8:str函式
第一個引數必須為數字,第二個引數表示轉化成char型佔的位置,小於引數一位置返回*,大於右對齊
SELECT str(12345,3)
----
***

(所影響的行數為 1 行)

SELECT str(12345,12)
------------
       12345

(所影響的行數為 1 行)
===========================================================
9:difference函式
返回一個整數值,指示兩個字元表示式的 SOUNDEX 值之間的差異。
返回的整數是 SOUNDEX 值中相同字元的個數。返回的值從 0 到 4 不等:0 表示幾乎不同或完全不同,4 表示幾乎相同或完全相同。
SELECT difference('lihan','liha')
-----------
3

(所影響的行數為 1 行)


==================================================================
10:stuff函式(四個引數)
函式將字串插入另一字串。它在第一個字串中從開始位置刪除指定長度的字元;然後將第二個字串插入第一個字串的開始位置。
SELECT stuff('lihan',2,3,'lihan')
--------
llihann

(所影響的行數為 1 行)
===============================================================

11:left函式
返回最左邊N個字元,由引數決定
select left('lihan',4)
-----
liha

(所影響的行數為 1 行)
================================================================

12 right函式
返回最右邊N個字元,由引數決定
select right('lihan',4)
-----
ihan

(所影響的行數為 1 行)
================================================================

13:replicate函式
我的認為是把引數一複製引數二次
select replicate('lihan',4)
--------------------
lihanlihanlihanlihan

(所影響的行數為 1 行)

================================================================

14:len函式
返回引數長度
select len('lihan')
-----------
5

(所影響的行數為 1 行)


================================================================
15:reverse函式
反轉字串
select reverse('lihan')
-----
nahil

(所影響的行數為 1 行)


=================================================================

16:lower和upper函式
引數大小寫轉化
select lower(upper('lihan'))
--------------------
lihan

(所影響的行數為 1 行)

====================================================================

17:ltrim和rtrim函式
刪除左邊空格和右面空格
select ltrim('    lihan                 ')
--------------------------
lihan                

(所影響的行數為 1 行)
select rtrim('    lihan')
---------
    lihan

(所影響的行數為 1 行)

追加:
排名函式是SQL Server2005新加的功能。在SQL Server2005中有如下四個排名函式:
1. row_number
2. rank
3. dense_rank
4. ntile   
    下面分別介紹一下這四個排名函式的功能及用法。在介紹之前假設有一個t_table表,表結構與表中的資料如圖1所示:


圖1

其中field1欄位的型別是intfield2欄位的型別是varchar

一、row_number

    row_number函式的用途是非常廣泛,這個函式的功能是為查詢出來的每一行記錄生成一個序號。row_number函式的用法如下面的SQL語句所示: 

select row_number() over(order by field1) as row_number,* from t_table

    上面的SQL語句的查詢結果如圖2所示。


圖2

    其中row_number列是由row_number函式生成的序號列。在使用row_number函式是要使用over子句選擇對某一列進行排序,然後才能生成序號。

    實際上,row_number函式生成序號的基本原理是先使用over子句中的排序語句對記錄進行排序,然後按著這個順序生成序號。over子句中的order by子句與SQL語句中的order by子句沒有任何關係,這兩處的order by 可以完全不同,如下面的SQL語句所示: 

select row_number() over(order by field2 descas row_number,* from t_table order by field1 desc

    上面的SQL語句的查詢結果如圖3所示。


圖3     我們可以使用row_number函式來實現查詢表中指定範圍的記錄,一般將其應用到Web應用程式的分頁功能上。下面的SQL語句可以查詢t_table表中第2條和第3條記錄: with t_rowtable
as
(
    
select row_number() over(order by field1) as row_number,* from t_table
)
select * from t_rowtable where row_number>1 and row_number < 4 order by field1

    上面的SQL語句的查詢結果如圖4所示。


圖4     上面的SQL語句使用了CTE,關於CTE的介紹將讀者參閱《SQL Server2005雜談(1):使用公用表表達式(CTE)簡化巢狀SQL》
    另外要注意的是,如果將row_number函式用於分頁處理,over子句中的order by 與排序記錄的order by 應相同,否則生成的序號可能不是有續的。
    當然,不使用row_number函式也可以實現查詢指定範圍的記錄,就是比較麻煩。一般的方法是使用顛倒Top來實現,例如,查詢t_table表中第2條和第3條記錄,可以先查出前3條記錄,然後將查詢出來的這三條記錄按倒序排序,再取前2條記錄,最後再將查出來的這2條記錄再按倒序排序,就是最終結果。SQL語句如下:  select * from (select top 2 * fromselect top 3 * from t_table order by field1) a order by field1 desc) b order by field1

                                               
                                                                圖5 
    上面的SQL語句查詢出來的結果如圖5所示。 

    這個查詢結果除了沒有序號列row_number,其他的與圖4所示的查詢結果完全一樣。

二、rank

    rank函式考慮到了over子句中排序欄位值相同的情況,為了更容易說明問題,在t_table表中再加一條記錄,如圖6所示。
                       

                                                          圖6 
    在圖6所示的記錄中後三條記錄的field1欄位值是相同的。如果使用rank函式來生成序號,這3條記錄的序號是相同的,而第4條記錄會根據當前的記錄 數生成序號,後面的記錄依此類推,也就是說,在這個例子中,第4條記錄的序號是4,而不是2。rank函式的使用方法與row_number函式完全相 同,SQL語句如下: 

select rank() over(order by field1),* from t_table order by field1

                                       
                                                                      圖7 

    上面的SQL語句的查詢結果如圖7所示。 

三、dense_rank

    dense_rank函式的功能與rank函式類似,只是在生成序號時是連續的,而rank函式生成的序號有可能不連續。如上面的例子中如果使用dense_rank函式,第4條記錄的序號應該是2,而不是4。如下面的SQL語句所示:

select dense_rank() over(order by field1),* from t_table order by field1

    上面的SQL語句的查詢結果如圖8所示。


圖8

    讀者可以比較圖7和圖8所示的查詢結果有什麼不同

四、ntile
    ntile函式可以對序號進行分組處理。這就相當於將查詢出來的記錄集放到指定長度的陣列中,每一個數組元素存放一定數量的記錄。ntile函式為每條記 錄生成的序號就是這條記錄所有的陣列元素的索引(從1開始)。也可以將每一個分配記錄的陣列元素稱為“桶”。ntile函式有一個引數,用來指定桶數。下 面的SQL語句使用ntile函式對t_table表進行了裝桶處理:
select ntile(4over(order by field1) as bucket,* from t_table

                                          
                                                               圖9

    上面的SQL語句的查詢結果如圖9所示。 

    由於t_table表的記錄總數是6,而上面的SQL語句中的ntile函式指定了桶數為4

    也許有的讀者會問這麼一個問題,SQL Server2005怎麼來決定某一桶應該放多少記錄呢?可能t_table表中的記錄數有些少,那麼我們假設t_table表中有59條記錄,而桶數是5,那麼每一桶應放多少記錄呢?

    實際上通過兩個約定就可以產生一個演算法來決定哪一個桶應放多少記錄,這兩個約定如下:

1. 編號小的桶放的記錄不能小於編號大的桶。也就是說,第1捅中的記錄數只能大於等於第2桶及以後的各桶中的記錄。

2. 所有桶中的記錄要麼都相同,要麼從某一個記錄較少的桶開始後面所有捅的記錄數都與該桶的記錄數相同。也就是說,如果有個桶,前三桶的記錄數都是10,而第4捅的記錄數是6,那麼第5桶和第6桶的記錄數也必須是6

    根據上面的兩個約定,可以得出如下的演算法:

// mod表示取餘,div表示取整 if(記錄總數 mod 桶數 == 0)
    {
        recordCount 
= 記錄總數 div 桶數;
        將每桶的記錄數都設為recordCount
    } 
    
else
    {
        recordCount1 
= 記錄總數 div 桶數 + 1;
        
int n = 1;  //  n表示桶中記錄數為recordCount1的最大桶數        m = recordCount1 * n;
        
while(((記錄總數 - m)  mod  (桶數 -  n))  != 0 )
        {
            n
++;
            m 
= recordCount1 * n;
        } 
        recordCount2 
= (記錄總數 - m) div  (桶數 - n);
        將前n個桶的記錄數設為recordCount1
        將n 
+ 1個至後面所有桶的記錄數設為recordCount2
    }

    根據上面的演算法,如果記錄總數為59,桶數為5,則前4個桶的記錄數都是12,最後一個桶的記錄數是11

    如果記錄總數為53,桶數為5,則前3個桶的記錄數為11,後2個桶的記錄數為10

    就拿本例來說,記錄總數為6,桶數為4,則會算出recordCount1的值為2,在結束while迴圈後,會算出recordCount2的值是1,因此,前2個桶的記錄是2,後2個桶的記錄是1

相關推薦

SQL Server常用函式 -- 更新中

1、擷取欄位:left(),right(),substring select 欄位名, left(欄位名, 2) from 表名 --擷取欄位內容的前四位 2、去除左右空格:ltrim()與rtrim() select 欄位名, left(欄位名, 2), left(RTR

sql server常用函式

一、字元轉換函式1、ASCII() 返回字元表示式最左端字元的ASCII 碼值。在ASCII()函式中,純數字的字串可不用‘’括起來,但含其它字元的字串必須用‘’括起來使用,否則會出錯。2、CHAR() 將ASCII 碼轉換為字元。如果沒有輸入0 ~255 之間的ASCII 碼值,CHAR() 返回NULL

Sql Server 常用函式(聯機幫助)

ISNULL 使用指定的替換值替換 NULL。 語法 ISNULL ( check_expression , replacement_value ) 引數 check_expression 將被檢查是否為 NULL的表示式。check_expression 可以是任何型別的

SQL SERVER 常用函式

LEN ( string_expression )                 返回指定字串表示式的字元數,其中不包含空格 DATALENGTH ( expression )           此函式返回用於表示任何表示式的位元組數 SELECT LEN(43233

SQL Server 常用函式使用方法

1、SubString():用於擷取指定字串的方法。該方法有三個引數:引數1:用於指定要操作的字串。引數2:用於指定要擷取的字串的起始位置,起始值為 1 。引數3:用於指定要擷取的長度。select substring('abcdef',1,3) -- 返回 abc

Sql Server常用函式之統計、算數、字串函式

統計函式 Ø  AVG(expression)函式----按列計算平均值 Ø  SUM(expression)函式----按列計算值的總和          例:求學號為S1的學生的平均分和總分  

SQL server常用的字串函式、日期函式、數學函式

1.字串函式: charindex()尋找一個指定字串在另外一個字串的起始位置索引; len()返回給定字串的長度; upper()把給定的字串轉換成大寫; lower()把給定的字串轉換成小寫; ltrim()清除字元左邊的空格; rtrim()清除字元右邊的空格; ri

SQL Server常用的關鍵字和基本關鍵字

fix 數據庫 刪除 總結 數據表 reader 不常用 基本 clas 個人覺得sql數據庫的關鍵字不常用比較會忘記,但是對數據表的靈活應用卻很重要,所以在這裏總結一些! 一、常用關鍵字 ALTER TABLE(修改表)用於在已有的表中添加、修改或刪除列。

SQL Server 常用操作XML

man 刪除節點 操作 ble rep 插入 mman varchar lis --修改FunctionNo節點值,@OperateFunctionNo為參數 set @DataXml.modify(‘replace value of (/CrudData/Functio

SQL Server常用系統表

data pro 根據 結果 同時 最大 sys 次數 max 1、查詢當前數據庫中的用戶表 select *from sysobjects where xtype=‘U‘; 2、獲取SQL Server允許同時用戶連接的最大數 SELECT @@MAX_CONNECTIO

SQL SERVER 常用知識整理

情況 常用知識 ont 查看sql itl url height log title   以前寫了一些關於sql的文章,包括一些轉載的,這裏做下整理,方便需要時候使用 一、基礎運用 SQL 數據結構操作語句 SQL 時間處理 SQL 常見函數使用 CASE WHE

SQL Server常用函數

lam color class details detail 函數 常用函數 lan csdn stuff(param1, startIndex, length, param2) 參考SQL Server常用函數

SQL Server 字串函式

 在開發T-SQL時,經常會需要對字串進行各種各樣的操作,下面介紹常用的字串函式。 1、獲取字元的ASCII碼 ASCII     ASCII碼是對字元的標準編碼。要獲取字元的ASCII碼就可以通過呼叫ASCII函式來實現。     語法結構: ASCII(espression)   這裡的e

SQL Server排名函式與排名開窗函式

什麼是排名函式?說實話我也不甚清楚,我知道 order by 是排序用的,那麼什麼又是排名函式呢? 接下來看幾個示例就明白了。 首先建立一個表,隨便插入一些資料。 ROW_NUMBER 函式:直接排序,ROW_NUMBER函式是以上升進行直接排序,並且以連續的順序給每一行資料一個唯一的序號。(即排名

SQL Server聚合函式與聚合開窗函式

以下面這個表的資料作為示例。 什麼是聚合函式? 聚合函式:聚合函式就是對一組值進行計算後返回單個值(即分組)。聚合函式在計算時都會忽略空值(null)。 所有的聚合函式均為確定性函式。即任何時候使用一組相同的輸入值呼叫聚合函式執行後的返回值都是相同的,無二義性。 COUNT(統計函式):COUNT

SQL常用函式

      表8-2 中的SOUNDEX 需要做進一步的解釋。SOUNDEX 是一個將任何文字串轉換為描述其語音表示的字母數字模式的演算法。SOUNDEX 考慮了類似的發音字元和音節,使得能對字串進行發音比較而不是字母比較。雖然SOUNDEX 不是SQL 概念,但多數D

SQL Server 效能優化實戰系列(一) SQL Server擴充套件函式的基本概念 使用SQL Server 擴充套件函式進行效能優化 SQL Server Url正則表示式 記憶體常駐 完美解決方案

資料庫伺服器主要用於儲存、查詢、檢索企業內部的資訊,因此需要搭配專用的資料庫系統,對伺服器的相容性、可靠性和穩定性等方面都有很高的要求。        下面是進行籠統的技術點說明,為的是讓大家有一個整體的概念,如果想深入可以逐個擊破;&n

sql server常用sql語句

1、新建資料庫 CREATE DATABASE 資料庫名 2、刪除資料庫 DROP DATABASE 資料庫名 3、建立新表 CREATE 表名 ( id int identity(1,1) primary key, //設定id自增和主鍵 name varchar(

sql server DATEPART() 函式的使用

datepart() 函式是用來返回 指定日期時間的指定日期部分的整數。返回型別為:int 。語法:DATEPART(datepart,date) 其中date是日期、時間。part指其中的一部分。所以這個函式的意思就是取日期中的一部分。 函式的第一引數 datepart是指定應返回的日