sql4
QL SERVER 函數列表:------------------
CONVERT() 函數是把日期轉換為新數據類型的通用函數。
CONVERT() 函數可以用不同的格式顯示日期/時間數據。
From <http://www.w3school.com.cn/sql/func_convert.asp>
FIRST() 函數返回指定的欄位中第一個記錄的值。
提示:可使用 ORDER BY 語句對記錄進行排序
From <http://www.w3school.com.cn/sql/sql_func_first.asp>
UCASE 函數把欄位的值轉換為大寫。
From <http://www.w3school.com.cn/sql/sql_func_ucase.asp>
LCASE 函數把欄位的值轉換為小寫。
From <http://www.w3school.com.cn/sql/sql_func_lcase.asp>
MID 函數用於從文本欄位中提取字元。
From <http://www.w3school.com.cn/sql/sql_func_mid.asp>
LEN 函數返迴文本欄位中值的長度
From <http://www.w3school.com.cn/sql/sql_func_len.asp>
ROUND 函數用於把數值欄位舍入為指定的小數位數。
From <http://www.w3school.com.cn/sql/sql_func_round.asp>
NOW 函數返回當前的日期和時間
From <http://www.w3school.com.cn/sql/sql_func_now.asp>
FORMAT 函數用於對欄位的顯示進行格式化
條件判斷
IIF ( boolean_expression, true_value, false_value )
快速分頁查詢
ROW_NUMBER ( ) OVER ( [ <partition_by_clause> ] <order_by_clause> )
查找字元串
charindex函數返回字元或字元串在另一個字元串中的起始位置, charindex(expression1,expression2)
patindex函數返回字元或字元串在另一個字元串或表達式中的起始位置,patindex函數支持搜索字元串中使用通配符,這使patindex函數對於變化的搜索字元串很有價值
欄位拼接
select tab.msft_mvpid
,REPLACE(tab.msft_specialtystring,char(10),) as CAString
,REPLACE(tab.string,char(10),) as String
from(SELECT
DISTINCT
award1.msft_mvpid
,award1.msft_specialtystring
,STUFF(
(SELECT , + ca2.msft_name as [text()]
FROM [crm].[msft_influenceraward] award2
INNER JOIN [crm].[msft_msft_technology_msft_influenceraward] cacRel2 ON cacRel2.msft_influencerawardid = award2.[msft_influencerawardid]
INNER JOIN [crm].[msft_technology] ca2 ON ca2.[msft_technologyid] = cacRel2.msft_technologyid
--AND ac.msft_name in (Business Solutions,Office Servers and Services,Visual Studio and Development Technologies)
WHERE award2.[statecode] = 0
AND award2.msft_influencerstatus = 299600000
AND award1.msft_mvpid=award2.msft_mvpid
FOR XML PATH()), 1, 1, ) AS string
,award1.[msft_influencerawardid]
FROM [crm].[msft_influenceraward] award1
INNER JOIN [crm].[msft_msft_technology_msft_influenceraward] cacRel1 ON cacRel1.msft_influencerawardid = award1.[msft_influencerawardid]
INNER JOIN [crm].[msft_technology] ca1 ON ca1.[msft_technologyid] = cacRel1.msft_technologyid
WHERE award1.[statecode] = 0
AND award1.msft_influencerstatus = 299600000
) as tab
where tab.msft_specialtystring <> tab.string
---------------------where 1=1 規範SQL語句,where 1=0,讀取表結構,建新表---
Row_number()over(PARTITION by column order by column2 desc) as
Isnull(column,0)
Stuff()
Contact()
Convert()
Cast()
IIF()
Substring()
Replace()
Case when --then --- end as
DateName() ----Datepart()----DateAdd---getdate()
Charindex()
SCOPE_IDENTITY()
DBCC CHECKIDENT(,,,) WITH NO_INFOMSGS
DBCC 是Database Console Commands 的簡寫,DBCC CheckIdent 用於查看指定Table的當前ID值,並根據需要,修改其ID值
----------------------------------------------------------------------
SQL 函數
Funcation1
Funcation2 Count() Row_Number() over(partition by A order by B desc)Max()
Replace() Min() ltrim() Avg() rtrim() IsNumeric() trim() IsDate() Convert()IDENTITY
IsNull() SUM() Patindex() Rank() Replicate() Dense_Rank() Reverse() Case when then end Stuff(,,,) for xml path() left(,) IIF( ,,) first() Substring(,,) ucase() charindex() lcase() Contact() mid() Cast() len() Scope_Identity() round() Now() format() getdate() dateadd() datepart() datediff()數據存儲選擇: https://docs.microsoft.com/zh-cn/azure/architecture/guide/technology-choices/data-store-comparison
exec是sqlplus的命令,只能在sqlplus中使用。
call是sql命令,任何工具都可以使用,call必須有括弧,即例沒有參數
From <https://www.cnblogs.com/zhangzongle/archive/2016/09/26/5910941.html>
Numeric(a,b): 數據存儲精確值
Decimal(p,s):數據存儲精確值
Round()四捨五入函數
Substring:截取字元串
SUBSTRING ( expression , start , length )
LTRIM ( character_expression )刪除字元變數中的起始空格
RTRIM ( character_expression ) 刪除字元變數中的尾隨空格Stuff():欄位拼接
Contact:字元串連接
Charindex :查找目標字元串 ,全匹配
Partindex :查找字元串,支持模糊匹配
IIF():邏輯函數,處理條件判斷
replace:用另一個字元串代替指定字元串
ISNUMERIC函數的作用是確定表達式是否為一個有效的數字類型
如果輸入表達式的計算值為有效的整數、浮點數、money 或 decimal 類型時,ISNUMERIC 返回 1;否則返回 0
IDENTITY [ ( seed , increment ) ] 表中創建一個標誌列
參數
seed 裝載到表中的第一個行所使用的值。
increment 增量值,該值被添加到前一個已裝載的行的標識值上。
必須同時指定種子和增量,或者二者都不指定。如果二者都未指定,則取默認值 (1,1)
排名函數:
Row_Number() over (order by AA desc)先使用over子句中的排序語句對記錄進行排序,然後按照這個順序生成序號。over子句中的order by子句與SQL語句中的order by子句沒有任何關係,這兩處的order by 可以完全不同
Rank()over (order by AA desc)函數用於返回結果集的分區內每行的排名, 行的排名是相關行之前的排名數加一
dense_rank函數的功能與rank函數類似,dense_rank函數在生成序號時是連續的,而rank函數生成的序號有可能不連續。dense_rank函數出現相同排名時,將不跳過相同排名號,rank值緊接上一次的rank值
ntile函數可以對序號進行分組處理,將有序分區中的行分發到指定數目的組中。 各個組有編號,編號從一開始。 對於每一個行,ntile 將返回此行所屬的組的編號
Ucase() 函數把欄位的值轉換為大寫
Lcase() 函數把欄位的值轉換為小寫
MID() 函數用於從文本欄位中提取字元
SELECT MID(column_name,start[,length]) FROM table_name
FORMAT 函數用於對欄位的顯示進行格式化
SELECT FORMAT(column_name,format) FROM table_name
REPLICATE ( character_expression, integer_expression) 按指定次數重複字元表達式
Reverse()這個函數的主要功能是把一個字元產反轉
SCOPE_IDENTITY 和 @@IDENTITY 的作用都是取得返回在當前會話中的任何錶內所生成的最後一個標識值,簡單的說就是在執行一條插入語句之後使用@@IDENTITY的全局變數,取得插入記錄的ID號但是有個問題就是,@@IDENTITY是全局的,所以在他的功能會體現在所有作用域,一個操作,一個觸發器,一個存儲過程叫做一個作用域,這時候如果出現多個作用域的情況的時候,@@IDENTITY所取得的ID號就是最後一個作用域產生的結果。這時候我們要使用SCOPE_IDENTITY方法來作了。SCOPE_IDENTITY 只返回插入到當前作用域中的值;@@IDENTITY 不受限於特定的作用域
計算標準偏差值STDEV
select stdev(age) from person -- 查詢person表裡的年齡的標準偏差
VAR函數用於計算指定表達式中所有值的方差。
select var(age) from person -- 查詢person表裡的年齡的方差
返回組中各值的校驗和。 將忽略 Null 值。CHECKSUM_AGG 可用於檢測表中的更改。表中行的順序不影響 CHECKSUM_AGG 的結果
SELECT CHECKSUM_AGG(Account_Age) FROM Account
GOUPDATE Account SET Account_Age = 30 WHERE Account_Id = 6GOSELECT CHECKSUM_AGG(Account_Age) FROM AccountCOUNT_BIG: 返回組中的項數
-----------------------------------2018-08--7
1,NULL 與0 有區別,含義不一樣過濾條件,isnull(filed,0)
推薦閱讀:
TAG:計算機視覺 | SQL必知必會第4版書籍 |
