SQLserver中常見的函式
---字元中操作函式 UPPER(S) 將字串統一為大寫字母 SELECT UPPER('asasA')--ASASA LOWER(S) 將字串統一為小寫字母 SELECT LOWER('asasA')---asasa LEN(S)返回字串的長度 SELECT LEN('中國1號') --4 CHARINDEX(S1,S2) 返回S1在字串S2中的位置 SELECT CHARINDEX('aa1號','1111aa1號中國1號') --5 SUBSTRING(S,I,N) 在S字串中的第I個字元起取N個字元 SELECT SUBSTRING('TECHNOLO',3,3) --CHN SELECT CONVERT(INT,'111') LEFT(S,N) 從字串S左邊取N個字元 RIGHT(S,N) 從字串S右邊取N個字元 SELECT RIGHT('00000000'+'11',8) SELECT RIGHT('00000000'+'2222',8) SELECT LEFT('11'+'00000000'+'11',8) SELECT LEFT('2222'+'00000000'+'2222',8) SPACE(N) 生成N個空格 SELECT '合計'+SPACE(2)+'123' RTRIM(S) --消除字串左邊開始或者右邊開始的空格 LTRIM(S) --消除字串左邊開始或者右邊開始的空格 SELECT RTRIM('SAMPLE') SELECT LTRIM('SAMPLE') SELECT LTRIM(RTRIM('SAMPLE')); REPLACE(STRING,ATOREPLACE,NEWSTRING) --替換函式 SELECT REPLACE('HHAAAH','A','S') --二、常用函式 --數學函式 ABS(<數值表示式>) 絕對值,|x| SELECT abs('-3') ---3 CEILING(<數值表示式>) >=自變數的最小整數 EXP(<數值表示式>) 對基E的冪,e=2.71828 FLOOR(<數值表示式>) <=自變數的最大整數 INT(<數值表示式>) 取整(舍尾)自變數 LOG(<數值表示式>) 自變數的自然對數,ln x LOG10(<數值表示式>) 自變數的普通對數,lg x MAX(<表示式1>,<表示式2>)兩個值的最大值SELECT MAX(3,5) MIN(<表示式1>,<表示式2>)兩個值的最小值 MOD(<數值表示式1>,<數值表示式2>)求餘數 RAND([<數值表示式1>]) 返回偽隨機數 ROUND(<數值表示式1>,<數值表示式2>)四捨五入第一個自變數 SIGN(<數值表示式>) 自變數的符號 SQRT(<數值表示式>) 平方根(正根) AVG(nExpr), CNT(S), MAX(eExpr), MIN(eExpr), NPV(nExpr1, nExpr2,…), ----日期 SELECT DAY(GETDATE(S))-- 返回日期中的天 SELECT MONTH(GETDATE(S))-- 返回日期中的月 SELECT YEAR(GETDATE(S))-- 返回日期中的年 ---- select xxaa Case when xxx then when yyy then end SELECT DISTINCT vv, Row_Number() OVER (partition by PUR_ID ORDER BY vv desc) rank DISTINCT
---字元中操作函式
UPPER(S) 將字串統一為大寫字母
SELECT UPPER('asasA')--ASASA
LOWER(S) 將字串統一為小寫字母
SELECT LOWER('asasA')---asasa
LEN(S)返回字串的長度
SELECT LEN('中國1號') --4
CHARINDEX(S1,S2) 返回S1在字串S2中的位置
SELECT CHARINDEX('aa1號','1111aa1號中國1號') --5
SUBSTRING(S,I,N) 在S字串中的第I個字元起取N個字元
SELECT SUBSTRING('TECHNOLO',3,3) --CHN
SELECT CONVERT(INT,'111')
LEFT(S,N) 從字串S左邊取N個字元
RIGHT(S,N) 從字串S右邊取N個字元
SELECT RIGHT('00000000'+'11',8)
SELECT RIGHT('00000000'+'2222',8)
SELECT LEFT('11'+'00000000'+'11',8)
SELECT LEFT('2222'+'00000000'+'2222',8)
SPACE(N) 生成N個空格
SELECT '合計'+SPACE(2)+'123'
RTRIM(S) --消除字串左邊開始或者右邊開始的空格
LTRIM(S) --消除字串左邊開始或者右邊開始的空格
SELECT RTRIM('SAMPLE')
SELECT LTRIM('SAMPLE')
SELECT LTRIM(RTRIM('SAMPLE'));
REPLACE(STRING,ATOREPLACE,NEWSTRING) --替換函式
SELECT REPLACE('HHAAAH','A','S')
--二、常用函式
--數學函式
ABS(<數值表示式>) 絕對值,|x|
SELECT abs('-3') ---3
CEILING(<數值表示式>) >=自變數的最小整數
EXP(<數值表示式>) 對基E的冪,e=2.71828
FLOOR(<數值表示式>) <=自變數的最大整數
INT(<數值表示式>) 取整(舍尾)自變數
LOG(<數值表示式>) 自變數的自然對數,ln x
LOG10(<數值表示式>) 自變數的普通對數,lg x
MAX(<表示式1>,<表示式2>)兩個值的最大值SELECT MAX(3,5)
MIN(<表示式1>,<表示式2>)兩個值的最小值
MOD(<數值表示式1>,<數值表示式2>)求餘數
RAND([<數值表示式1>]) 返回偽隨機數
ROUND(<數值表示式1>,<數值表示式2>)四捨五入第一個自變數
SIGN(<數值表示式>) 自變數的符號
SQRT(<數值表示式>) 平方根(正根)
AVG(nExpr), CNT(S),
MAX(eExpr),
MIN(eExpr),
NPV(nExpr1, nExpr2,…),
----日期
SELECT DAY(GETDATE(S))-- 返回日期中的天
SELECT MONTH(GETDATE(S))-- 返回日期中的月
SELECT YEAR(GETDATE(S))-- 返回日期中的年
----
select xxaa
Case
when xxx then
when yyy then
end
SELECT DISTINCT vv, Row_Number() OVER (partition by PUR_ID ORDER BY vv desc) rank
DISTINCT
SQLServer中萬用字元%和_的使用
--以a開頭的資料
SELECT * FROM BCUSTOMER_MZN WHERE CST_NAME LIKE 'A%'
--以Z結尾的資料
SELECT * FROM BCUSTOMER_MZN WHERE CST_NAME LIKE '%Z'
--含有B的資料
SELECT * FROM BCUSTOMER_MZN WHERE CST_NAME LIKE '%B%'
--不含有B的資料
SELECT * FROM BCUSTOMER_MZN WHERE CST_NAMEnot LIKE '%B%'
--三位且中間字母是a的
SELECT * FROM BCUSTOMER_MZN WHERE CST_NAME LIKE '_a_'
--兩位且結尾字母是a的
SELECT * FROM BCUSTOMER_MZN WHERE CST_NAME LIKE '_a'
--兩位且開頭字母是a的
SELECT * FROM BCUSTOMER_MZN WHERE CST_NAME LIKE 'a_'