sqlserver中一些常用的函数总结

去掉空格方面

LTRIM('内容'):去掉字符串左边的空格

RTRIM('内容'):去掉右边的空格

LTRIM(RTRIM('内容')):去掉字符串左边和右边的空格

REPLACE(‘内容’,' ',''):去掉字符串里所有的空格

查找替换方面

CHARINDEX('要查找的字符','要查找的内容') :如果找不要要查找的内容,则返回0,找到返回字符串所在的位置,索引从1开始

LEFT('要截取的字符串','截取长度'):从左边开始截取

RIGHT('要截取的字符串','截取长度'):从右边开始截取

PATINDEX('%[^a-zA-Z.-]%','内容'),从左边开始查找,返回内容中含有该正则表所出现的位置,未找到返回0

ISNULL('内容',''):判断字符串是否为null,是的话返回‘’

COALESCE('参数1','参数2'):如果参数1值不为空就返回参数1,否则就返回参数2的值

ISDATE('内容'):判断是否为时间格式,是的话返回1,否的话返回0

CASE WHEN 用法

SELECT  时间= CASE  ISDATE('2015-1-1')

                     WHEN 1 THEN '时间格式正确'

                      ELSE  '非标准时间格式' END

CASE WHEN 多条件判断用法

SELECT  内容= CASE  

                     WHEN   '1232' like '%1%' THEN '1'

                     WHEN   '1232' like '%2%' THEN '2'

                      WHEN   '1232' like '%3%' THEN '3'

                      ELSE NULL  END

 

CASE WHEN 嵌套用法

SELECT 

 CASE CHARINDEX('/',时间1)
   WHEN 0 THEN NULL

   ELSE

     CASE
         WHEN CONVERT(INT,LEFT(时间1,2)) >=MONTH(GETDATE()) THEN CONVERT(VARCHAR(10),YEAR(getdate())) +'-'+REPLACE(时间1,'/','-')
         

          ELSE CONVERT(VARCHAR(10),YEAR(getdate())+1) +'-'+REPLACE(时间1,'/','-')
         

          END END AS 到港时间,

原文地址:https://www.cnblogs.com/dongml/p/6077805.html