sql 常用

having 字句用在分组函数之后 对分组后条件筛选


top 与 row_number() over(order by ***)


distinct 去重复


len计算长度 与 datalength计算字节数


substring(字符,第几个,length)
abs()计算绝对值


union 与 union all


power()计算指数 sqrt()计算平方根  ceiling()与floor()、round(待舍的数,精度)


sin() 、cos()、asin()、acos()、tan()、atan()、cot()、acot()


pi()取π值


degrees()弧度制转角度制 radians()角度制转弧度制


sign(参数)参数>0 1 参数=0 0 参数<0 -1


mssql 求余 %


log()求一个数的自然数对数


log10()求一个数以10为底的对数值


log(m,n)求以m为底n的对数


lower()将字符串转化为小写 upper


ltrim()、rtrim()、trim()


CHARINDEX('sd','asdfghjk') 查询子字符串在指定字符串中的位置,如果不存在则返回0


left(string,length)从左侧开始取任意长度的字符串 right()


REPLACE('woshidasb','wo','ni')替换指定字符串


ascii()获取第一个字符的ascii值 char()与ascii()方法相反


DIFFERENCE(FName,'Merry')计算每个人的姓名发音与“Merry”的相似度,然后返回一个0
至4之间的一个值来反映两个字符串的发音相似度,这个值越大则表示两个字符串发音思想度
越大。


SELECT CONVERT(VARCHAR(50) ,GETDATE( ), 101) as 当前日期


SELECT CONVERT(VARCHAR(50) ,GETDATE(), 108) as 当前时间


DATEADD(datepart , number, date )函数用于进行日期时间的加法运算


DATEDIFF( datepart , startdate , enddate )函数用于计算两个日期之间的差额


DATENAME(datepart,date)函数,这个函数可以返回一个日期的特定部分,并
且尽量用名称来表述这个特定部分


CAST ( expression AS data_type) 
CONVERT ( data_type, expression) 
  参数expression为待进行类型转换的表达式,而type为转换的目标类型


COALESCE ( expression,value1,value2……,valuen) 
  COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。
COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果
expression不为空值则返回expression;否则判断value1是否是空值,如果value1不为空值则返
回value1;否则判断value2是否是空值,如果value2不为空值则返回value3;……以此类推,


ISNULL(expression,value) 


NULLIF ( expression1 , expression2 ) 
如果两个表达式不等价,则  NULLIF 返回第一个  expression1的值。如果两个表达式等
价,则  NULLIF 返回第一个  expression1类型的空值。也就是返回类型与第一个  expression 
相同。 


case的两种用法
SELECT  
  FName, 
 (CASE FLevel 
  WHEN 1 THEN 'VIP客户'  
  WHEN 2 THEN '高级客户'  
  WHEN 3 THEN '普通客户' 
  ELSE '客户类型错误'  
  END) as FLevelName 
FROM T_Customer 




SELECT  
  FName, 
  FWeight, 
 (CASE 
  WHEN FWeight<40 THEN 'thin'  
  WHEN FWeight>50 THEN 'fat'  
  ELSE 'ok'  
  END) as isnormal 
FROM T_Person 


PATINDEX('%_m%',FName) 查找每个人的姓名中第一个长度为2并且第二个字符为m的子字
符串的位置:


REPLICATE (str,count) 
  参数str为子字符串,而count为重复次数。


REVERSE()函数用来将一个字符串的顺序颠倒


ISDATE()函数用来确定输入表达式是否为有效日期


ISNUMERIC ()函数用来确定表达式是否为有效的数值类型。


APP_NAME()函数返回当前会话的应用程序名称;CURRENT_USER函数(注意这个函
数不能带括号调用)返回当前登陆用户名;HOST_NAME()函数返回工作站名


NEWID() 


索引
CREATE [UNIQUE(唯一)|CLUSTERED(聚簇)]  INDEX idx_person_nameage ON T_Person(FName,FAge)
DROP INDEX 索引名  ON 表名 


定义复合唯一约束需要定义在所有字段列表之后,语法如下: 
CONSTRAINT 约束名  UNIQUE(字段1,字段2……字段n)
ALTER TABLE 表名 ADD  CONSTRAINT 唯一约束名  UNIQUE(字段1,字段2……字段n)


SET ANSI_NULLS {ON | OFF} 对null的取值on is null
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔


PARTITION BY
开窗函数的OVER关键字后括号中的可以使用PARTITION BY 子句来定义行的分
区来供进行聚合计算。与GROUP BY 子句不同,PARTITION BY 子句创建的分区是独
立于结果集的,创建的分区只是供进行聚合计算的,而且不同的开窗函数所创建的分区
也不互相影响。下面的SQL语句用于显示每一个人员的信息以及所属城市的人员数:
SELECT FName,FCITY , FAGE , FSalary,
COUNT(*) OVER(PARTITION BY FCITY)
FROM T_Person


备份表
select * into dbo.bf_Table_产品档案_标准工时表_裁剪 from dbo.Table_产品档案_标准工时表_裁剪





























































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值