SQL Server進階(十五)常用函式
阿新 • • 發佈:2019-01-11
在SQL 2012基礎教程中列出子句是按照以下順序進行邏輯處理。
FROM WHERE GROUP BY HAVING SELECT ORDER BY
IF EXISTS (SELECT 1 FROM TableName WHERE UserCode = @UserCode) BEGIN UPDATE TableNameSET NotPushBeginTime = @NotPushBeginTime, NotPushEndTime = @NotPushEndTime WHERE UserCode = @UserCode END ELSE BEGIN INSERTINTO 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