SQL常用函数使用
一、自定义函数创建语句
CREATE FUNCTION FUNA ( @a int =0, @b varchar(10)--传入参数 ) RETURNS VARCHAR(10) --定义返回值类型 AS BEGIN DECLARE @RETURNS VARCHAR(10) --定义返回值 SELECT @RETURNS=E FROM DZD RETURN @RETURNS --返回结果 END
--表值函数: CREATE FUNCTION FUNCB() RETURNS TABLE AS RETURN (SELECT * FROM A)
--函数使用: select dbo.FUNA(1,'dad') SELECT *FROM FUNCB()
二、系统自带函数使用
--合计函数: --计算平均值:AVG() SELECT AVG() FROM A --返回记录条数(不包含NULL):count(COLUMNNAME) *则匹配所有列 count(columnname) 则匹配该列 如果该列有null值则不计算在内 SELECT COUNT(*) FROM A/ SELECT COUNT(AID/ distinct aid) FROM A --计算最大值:MAX(column)不计算(NULL) SELECT MAX(D) FROM DZD --计算最小值:MIN(column)不计算(NULL) SELECT MIN(D) FROM DZD --计算总和:SUM(column) SELECT SUM(E) FROM DZD Order by : SELECT * FROM A ORDER BY A_Code ASC, ID DESC --多个 order by 时优先第一个,后面的是基于第一位排列的顺序之后排列的(通常是第一列有相同的数据,才会使得后面的排序生效) --Group by:用于结合合计函数对结果集进行分组 SELECT MIN(NUmber) FROM GOOD GROUP BY Name --Having:where 不能直接跟合计函数,所以加上having 可根据条件筛选合计函数结果 SELECT Customer,SUM(OrderPrice) FROM Orders where xxxx GROUP BY Customer HAVING SUM(OrderPrice)<2000 --计算文本长度:LEN(column) SELECT LEN(column_name) FROM table_name --类型转换:Convert(DATETYPE,EXPRESSION,STYLE),Cast(expression AS data_type ) SELECT CONVERT(varchar(10),'DASDA',11111) CAST(GETDATE() AS DATE) --保留小数位和转换为小数: Select cast(10*1.0 as decimal(4,2)) --日期操作函数:DateAdd(x,x,x),Datediff(x,x,x),datepart(x,x),datename(x,x) SELECT DATEADD(MONTH,34,GETDATE()) SELECT Datediff(day,'20200101',getdate()) SELECT DATEPART(WEEK,GETDATE()) SELECT DATENAME(WEEKDAY,GETDATE()) --- 截取函数 select* from [dbo].[MobilePhone] where substring(code,1,2)='hw' 可任意选择位置取 select* from [dbo].[MobilePhone] where right(code,2)='30' --从右边取,取2个 select* from [dbo].[MobilePhone] where left(code,2)='hw --从左边取,取2个
select dateadd(dd,-day(dateadd(month,-1,getdate()))+1,dateadd(month,-1,getdate())) /*上个月一号*/ select dateadd(dd,-day(getdate()),getdate()) /* 上月月底 */ select dateadd(dd,-day(getdate())+1,getdate()) /* 本月一号 */ select dateadd(dd,-day(dateadd(month,1,getdate())),dateadd(month,1,getdate())) /* 本月底 */ select dateadd(dd,-day(dateadd(month,1,getdate()))+1,dateadd(month,1,getdate())) /* 下月一号 */ select dateadd(dd,-day(dateadd(month,2,getdate())),dateadd(month,2,getdate())) /* 下月月底 */
随便用