same thing, try
use tempdb
goselect * into authors from pubs..authors
goCREATE FUNCTION IsContractor  (@contract bit)
RETURNS varchar(3)
AS
BEGIN
   DECLARE @IsContractor varchar(3)
   if @contract = 1
        set  @IsContractor = 'yes'
   else
        set  @IsContractor = 'no'
   RETURN(@IsContractor)
END
goselect *, dbo.IsContractor(contract) from authors
goCREATE FUNCTION IsContractor2 (@contract bit)
RETURNS varchar(3)
AS
BEGIN
   DECLARE @IsContractor varchar(3)
   set @IsContractor = case when @contract = 1 then 'yes'
    else 'no'
        end
   RETURN(@IsContractor)
END
goselect *, dbo.IsContractor2(contract) from authors

解决方案 »

  1.   

    create function test(@a int)
    returns @a int
    As
    Begin
        declare @b int
        if @a > 100
              set @b = @a
        else
              set @b = 100
        return (@b)
    Endcreate function test(@a int)
    returns @a int
    As
    Begin
        declare @b int
        set @b = (case when @a > 100 then @a else 100 end)
        return (@b)
    End
      

  2.   

    谢谢 saucer 和 txlicenhe 给你们每人20分
    能不能给一个表格值函数的例子,我再加20分
      

  3.   

    create function test(@a bit)
    returns @tb table(aa varchar(250))
    as 
    begin
    if @aa=0
    insert into @tb select name from syscolumns
    else
    insert into @tb select name from sysobjects
    return
    end
    go
      

  4.   

    --调用示例
    select * from dbo.test(1)
      

  5.   

    CREATE function IsNum(@inputStr varchar(100))
    returns bit
    as 
    begin
    declare @Rbit bit,@Slen int,@i int
    set @Rbit=1
      if len(@inputStr)=0 
    begin
     set @Rbit=0
    Return @Rbit
    end
    else
    set @Slen=len(@inputStr)
    set @i=1
    while @i<=@slen
    begin
    if substring(@inputStr,@i,1) like '[0-9.-]'
    set @i=@i+1
    else
    begin
    set @Rbit=0
    Return @Rbit
    end end
    if @Slen=1 and (@inputStr='.' or @inputStr='-') or (@slen=2 and (@inputStr='.-' or @inputStr='-.'))
    set @Rbit=0
    return @Rbit
    end
      

  6.   

    CREATE function IsNum(@inputStr varchar(100))
    returns bit
    as 
    begin
    declare @Rbit bit,@Slen int,@i int
    set @Rbit=1
      if len(@inputStr)=0 
    begin
     set @Rbit=0
    Return @Rbit
    end
    else
    set @Slen=len(@inputStr)
    set @i=1
    while @i<=@slen
    begin
    if substring(@inputStr,@i,1) like '[0-9.-]'
    set @i=@i+1
    else
    begin
    set @Rbit=0
    Return @Rbit
    end end
    if @Slen=1 and (@inputStr='.' or @inputStr='-') or (@slen=2 and (@inputStr='.-' or @inputStr='-.'))
    set @Rbit=0
    return @Rbit
    end
      

  7.   

    CREATE function fun_File_Role(@ClientID int,@FolderID int)
    returns varchar(50)
    asbegindeclare @Role_Str varchar(50),@Folder varchar(100)set @Role_Str=''  begin
        set @Folder=substring(dbo.fun_FolderID(@FolderID),0,charindex('\',dbo.fun_FolderID(@FolderID)))
        if exists(select UserName from Login_User where ClientID=@ClientID and charindex(@Folder,RoleID_Read)<>0 and charindex(@Folder,RoleID_ReName)<>0 and charindex(@Folder,RoleID_Delete)<>0 and charindex(@Folder,RoleID_UpLoad)<>0 and charindex(@Folder,RoleID_DownLoad)<>0)
    set @Role_Str = @Role_Str + 'A.'
        else
    begin     if exists(select UserName from Login_User where ClientID=@ClientID and charindex(@Folder,RoleID_Read)<>0)
           set @Role_Str = @Role_Str + 'R.'
       if exists(select UserName from Login_User where ClientID=@ClientID and charindex(@Folder,RoleID_ReName)<>0)
          set @Role_Str = @Role_Str + 'E.'
       if exists(select UserName from Login_User where ClientID=@ClientID and charindex(@Folder,RoleID_Delete)<>0)
          set @Role_Str = @Role_Str + 'D.'    if exists(select UserName from Login_User where ClientID=@ClientID and charindex(@Folder,RoleID_UpLoad)<>0  and charindex(@Folder,RoleID_DownLoad)<>0)
          set @Role_Str = @Role_Str + 'W.'
       else
    begin
       if exists(select UserName from Login_User where ClientID=@ClientID and charindex(@Folder,RoleID_UpLoad)<>0)
          set @Role_Str = @Role_Str + 'Up.'
       if exists(select UserName from Login_User where ClientID=@ClientID and charindex(@Folder,RoleID_DownLoad)<>0)
          set @Role_Str = @Role_Str + 'Down.'
    end
    end
      end   if @Role_Str=''
          set @Role_Str = @Role_Str + 'R.'return left(@Role_Str,len(@Role_Str)-1)end
      

  8.   

    zjcxc(邹建) 给出了 多语句表格值函数的例子 谢谢 20分归你了CrazyFor(太阳下山明朝依旧爬上来)  和 nboys() 给的是标量函数的例子,同样谢谢你们 每人10分谁能给出 在自定义内联表格函数中IF Case 等控制流语言的例子,我给30分