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个
原文地址:https://www.cnblogs.com/LearningFromyou/p/13153203.html