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 bySELECT *  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()))            /* 下月月底 */

 

posted @ 2020-06-17 22:27  JackDDD  阅读(340)  评论(0编辑  收藏  举报