我正在創建一個函數並在我的小查詢中使用它。我之前沒有這樣做,我真的不知道這樣做。定義一個函數並在SQL查詢中使用它
它跟任何其他語言一樣嗎? 像
create function testFunction()...
begin
..
..
end
,然後例如:
Select testFunction()
,它應該工作?
CREATE FUNCTION dbo.ISOweek (@DATE datetime)
RETURNS int
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @ISOweek int
SET @ISOweek= DATEPART(wk,@DATE)+1
-DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104')
--Special cases: Jan 1-3 may belong to the previous year
IF (@ISOweek=0)
SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1
AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1
--Special case: Dec 29-31 may belong to the next year
IF ((DATEPART(mm,@DATE)=12) AND
((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28))
SET @ISOweek=1
RETURN(@ISOweek)
END;
GO
SET DATEFIRST 1
SELECT dbo.ISOweek(CONVERT(DATETIME,'12/26/2004',101)) AS 'ISO Week'
您是否嘗試過尋找在SQL Server聯機叢書? – Raj
我做到了!太多的例子,但沒有任何工作,所以我在這裏問。也許我錯過了一些東西.. –
以及請顯示功能和你如何使用它,以及你得到了什麼錯誤(或者,如果沒有錯誤,什麼意外的行爲)。否則,我們不知道你做錯了什麼。 「不工作」不是問題描述。上面的例子是最基本的一點,不太可能是真正的問題。 – ADyson