--数据库字符串截取从1开始 --字符串函数 select ASCII(0) --48 select CHAR(48) --0 select lower(‘asMNddAD‘) --asmnddad select upper(‘asMNddAD‘) --ASMNDDAD select str(1245,9,3) -- 1245.000(数值1245转换为字符串,长度为9,小数点后有三位.小数点占一位,如果不够前边增加空格[自动四舍五入,默认值为10。小数点后最多保留16 位。默认不保留小数点后面的数字]) select ltrim(‘ asd mn ‘) --asd mn (左边空格去掉) select rtrim(‘ asd mn ‘) -- asd mn(右边空格去掉) select left(‘1234sddffgdsg‘,4) --1234(返回左边开始4个长度的字符串) select right(‘1234sddffgdsg‘,3) --dsg(返回右边开始3个长度的字符串) select substring(‘abcdefgmnp‘,2,3) --bcd(返回从左边第2个开始,长度是3的字符串) select charindex(‘cd‘,‘abcdefgmnp‘) --3(返回左边字符串在右边出现的位置) select charindex(‘ab‘,‘sabcdabmn‘,4) --6, 有参数4,则从第四个位置开始 select difference(‘xiaoming‘,‘123‘) --相似度匹配<这个是搜索高级用法> select len(‘abcde ‘) --5,长度(只包含开头和中间的空格,不包含尾部空格) select patindex(‘%ab%‘,‘mndabpabq‘) --4,从左边开始第一次匹配到的字符串位置,%:任意长度字符串 select patindex(‘ab%‘,‘mnab‘) --0 select patindex(‘%_a__b_%‘,‘0001a23bc45‘) --4,从左边开始第一次匹配到的字符串位置,_:一个长度的字符 select reverse(‘abcd‘) --dcba 反转 select ‘a‘+space(3)+‘b‘ --a b,增加空格数 select stuff(‘abcde‘,3,‘123‘) --a123e,从字符串abcde中的第2个位置删除3个增加123 select replace(‘abcmmabcnnabc‘,‘abc‘,‘123‘) --123mm123nn123,替换 --日期时间函数 select GETDATE() --当前时间 select GETUTCDATE() --世界标准时间 select dateadd(YEAR,GETDATE()) --当前时间加2年,QUARTER/qq,MONTH/mm,DAY/dd,HOUR/hh,MINUTE/mi,SECOND/ss select datediff(year,‘2017-01-10‘,getdate()) --当前时间减去2000年获取年份,SECOND/ss select datename(YEAR,GETDATE()) --当前年份(字符串),SECOND/ss,dw(星期五),dy(一年中的第几天),wk(一年的第46个星期) select datepart(YEAR,GETDATE()) --当前年份(数字),dw(一周中的第几天[周日:1,周一:2]),wk(一年的第46个星期) select YEAR(GETDATE()) --当前年份(数字),和datepart相似,例如:day(),month() --数学函数 select abs(-4) --绝对值 select PI() --pai select COS(PI()/3) --0.5,相当于cos(60度) select SIN(PI()/6) --0.5,相当于sin(30度) select TAN(PI()/4) --1,相当于tan(45度) select cot(PI()/4) --1,相当于cot(45度) select aCOS(0.5) --返回0.5对应的弧度值,例如:pi()/3,即60度 select aSIN(0.5) --30度 select aTAN(1) --45度 select degrees(PI()/3) --60,即60度,返回弧度 select radians(60.0) --返回60度对应的弧度值 select EXP(2) --返回以自然常数e为底的指数函数 select LOG(EXP(2)) --返回以e为底的对数函数 select log10(10) --返回以10为底的对数函数 select ceiling(1.23) --向上取整(数值变大,-1.2变为-1,1.2变为2) select floor(1.89) --向下取整(数值变小,-1.8变为-2,1.8变为1) select power(2,10) --1024,指数运算 select sqrt(9) --3,开平方运算 select rand(2.3) --随机数(0-1),随机数种子可以不填,如果种子相同,产生的随机数则相同 --select ROUND(1) --
--convert()转换时间格式 select convert(nvarchar(1000),GETDATE()) --11 16 2018 4:52PM select convert(nvarchar(1000),GETDATE(),101) --11/16/2018 select convert(nvarchar(1000),102) --2018.11.16,常用 select convert(nvarchar(1000),103) --16/11/2018 select convert(nvarchar(1000),104) --16.11.2018 select convert(nvarchar(1000),105) --16-11-2018 select convert(nvarchar(1000),106) --16 11 2018 select convert(nvarchar(1000),107) --11 16,2018 select convert(nvarchar(1000),108) --16:56:13,常用 select convert(nvarchar(1000),109) --11 16 2018 4:57:02:030PM select convert(nvarchar(1000),110) --11-16-2018 select convert(nvarchar(1000),111) --2018/11/16,常用 select convert(nvarchar(1000),112) --20181116,常用 select convert(nvarchar(1000),113) --16 11 2018 16:57:02:030 select convert(nvarchar(1000),114) --16:57:02:030 select convert(nvarchar(1000),120) --2018-11-16 16:57:37,常用 select convert(nvarchar(1000),121) --2018-11-16 16:57:37.893,常用 select convert(nvarchar(1000),126) --2018-11-16T16:57:37.893 select convert(nvarchar(1000),130) -- 8 ???? ????? 1440 4:57:37:893PM select convert(nvarchar(1000),131) -- 8/03/1440 4:57:37:893PM select cast(GETDATE() as nvarchar(10)) --11 18 2018,类型转换 select N‘年龄:‘+CAST(123 as nvarchar) --年龄:123,类型转换,[N 是为了使数据库识别Unicode 字符]
select NEWID() --生成guid select isnumeric(2) --1,是否是数字,不是数字返回0 select ISNULL(null,‘asdsd‘) --asdsd,前边为null,返回后边 select ISNULL(‘aaa‘,‘asdsd‘) --aaa,前边不是null,返回前边 select ISDATE(‘20180112‘) --1,判断能否转换成日期格式,如果能返回1,不能返回0
select ID,Name,ROW_NUMBER() over(order by Name) as rank from [ChinaArea].[dbo].[Region] --ROW_NUMBER()必须和 over(order by Name) as rank一起使用,增加一列rank select ID,CityCode,rank() over(order by Name) as rank from [ChinaArea].[dbo].[Region] --rank()排名,如果有两个第一名并列,则不会有第二名,下一个直接从3开始。即显示1,1,3[没有2,不连续] select ID,dense_rank() over(order by Name) as rank from [ChinaArea].[dbo].[Region] --dense_rank()排名,如果有两个第一名并列,下一个从2开始。即显示1,1,2[连续数字] --聚合函数,聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用--count(),min(),max(),avg(),sum()--distinct使用方法:根据distinct后边的字段去处重复.如果是distinct(name),则去除name相同的;如果是distinct name,sex,则去除name和sex相同的数据
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|