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_NAME not 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_‘