SQL Server进阶(十五)常用函数

在SQL 2012基础教程中列出子句是按照以下顺序进行逻辑处理。

FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
                           IF EXISTS (SELECT 1  FROM  TableName WHERE  UserCode = @UserCode)
                              BEGIN
                                  UPDATE TableName
                                  SET    NotPushBeginTime = @NotPushBeginTime,
                                         NotPushEndTime = @NotPushEndTime
                                  WHERE  UserCode = @UserCode
                              END
                            ELSE
                              BEGIN
                                  INSERT INTO TableName
                                              (UserCode,
                                               NotPushBeginTime,
                                               NotPushEndTime,
                                               CreateTime)
                                  VALUES     (@UserCode,
                                              @NotPushBeginTime,
                                              @NotPushEndTime,
                                              Getdate())
                             END

sql中的表值函数与标量值函数区别与用法

通俗来讲:

听名字就知道区别了 
表值函数返回的是一张表结果,就和一个select查询语句一样,只不过里面带入了参数或者很复杂;
标量值函数返回的只是一个值

一 、表值函数又分为内联函数与多语句函数

(1)内联函数就是没有函数主体表是单个 SELECT。

下面是一个不带输入参数的表值函数
create function tvpoints()
returns table
as 
return
(
select * from tb_users
);

(2)下面是带参的内联表值函数

对于多语句表值函数,在 BEGIN...END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。
以下示例创建了一个表值函数.
create function tvpoints()
returns @points table (x float, y float)
as begin
insert @points values(1,2);
insert @points values(3,4);
return;
end

(3)标量函数(返回一个具体类型的值而不是一张表了)

CREATE FUNCTION FUN_DataFormat (@strDate datetime)  
RETURNS varchar(20)  AS  
BEGIN 
    
    declare @date varchar(20)
      set @date = DATENAME(YY,@strDate)+''+Convert(VARCHAR,MONTH(@strDate))+''+Convert(VARCHAR,DAY(@strDate))+''
    return @date
END

可以通过select dbo.FUN_DataFormat(getdate())来使用。(用的时候一定要在函数前面添加一个dbo或者的话数据库语句报错的会提示不认识的)

 SELECT * FROM dbo.Acceptance FOR XML PATH

SQL Server 中WITH (NOLOCK)浅析

https://www.cnblogs.com/kerrycode/p/3946268.html

猜你喜欢

转载自www.cnblogs.com/cnki/p/9581571.html