A. sql表值函數和標量值函數的區別
返回值不同:
表值函數:返回Table
標量值函數:返回一個值
B. 什麼是SQL標量函數
標量函數:標量函數用於對傳遞給它的一個或者多個參數值進行處理和計算,並返回一個單一的值。
標量值函數示例:
CREATE FUNCTION dbo.Foo()
RETURNS int
AS
BEGIN
declare @n int
select @n=3
return @n
END
SQL中的函數
在Transact-SQL語言中,函數被用來執行一些特殊的運算以支持SQL Server的標准命令。Transact-SQL 編程語言提供了三種函數:
一行集函數:行集函數可以在Transact-SQL語句中當作表引用。
二聚合函數:聚合函數用於對一組值執行計算並返回一個單一的值。
三標量函數:標量函數用於對傳遞給它的一個或者多個參數值進行處理和計算,並返回一個單一的值。
另外:
SQL Server 2000 允許用戶創建自定義函數,自定義函數可以有返回值。
自定義函數分為:標量值函數或表值函數
•如果 RETURNS 子句指定一種標量數據類型,則函數為標量值函數。可以使用多條 Transact-SQL 語句定義標量值函數。
•如果 RETURNS 子句指定 TABLE,則函數為表值函數。
C. T-SQL 標量函數的調用
你函數返回的是整型,但是實際返回的是表啊,請修改函數後,再進行測試,謝謝
createfunctionjudge(@numberint)
returnsintas---返回int
begin
declare
@markint,@評分char(50)
select@mark=min(成績)from學生成績表where學號=@number
return(select
@mark,
@評分=CASE
when@mark>=90then'該學生成績全部優秀!'
when@mark>=60then'該學生成績全部合格!'
else'該學生有成績不合格!'
end
from學生成績表
)end--實際返回一個兩列一行的table
D. SQL Server中,自定義函數有哪三種
自定義函數分為:標量值函數或表值函數
- 如果RETURNS子句指定一種標量數據類型,則函數為標量值函數。可以使用多條Transact-SQL語句定義標量值函數。
- 如果RETURNS子句指定TABLE,則函數為表值函數。
表值函數又可分為:內嵌表值函數(行內函數)或多語句函數
- 如果RETURNS子句指定的TABLE不附帶列的列表,則該函數為內嵌表值函數。
- 如果RETURNS子句指定的TABLE類型帶有列及其數據類型,則該函數是多語句表值函數。
E. sql server 標量函數
使用select語句就可以
select dbo.EID(DTID) from employee
F. SQL表值函數和標量值函數的區別
聽名字就知道區別了
表值函數返回的是一張表結果,就和一個select查詢語句一樣,只不過裡面帶入了參數或者很復雜;
標量值函數返回的只是一個值