TSQL里标量函数的几种不同的调用方式

TSQL里标量函数的几种不同的调用方式

--王成辉翻译整理,转贴请注明出自微软BI开拓者www.windbi.com
--原帖地址

use pubs
go
create function test ( @ci char( 1 ) )
returns bit
as
begin
        return( CASE WHEN NULLIF( @ci , space( 1) ) is not null  then 0 else 1 end )
end
go

declare @ci char( 1 ) , @y bit
set @ci =' '
--使用EXECUTE调用
exec @y = test @ci
select @y as IsBlank
/*IsBlank
-------
      1
*/

set @ci ='A'
--作为一个函数使用SET调用
set @y = dbo.test( @ci )
select @y as IsBlank
/*IsBlank
-------
      0
*/

set @ci ='b'
--作为一个函数使用SELECT调用
select @y = dbo.test( @ci )
select @y as IsBlank
/*IsBlank
-------
      0 */

set @ci ='V'
--调用一个类似的系统函数
set @y = fn_chariswhitespace( @ci )
select @y as IsBlank
/*IsBlank
-------
      0 */
虽有智慧,不如乘势;虽有鎡基,不如待时。
君子学以聚之,问以辨之,宽以居之,仁以行之。
独学而无友,则孤陋而寡闻。