Chinaunix首页 | 论坛 | 博客
  • 博客访问: 799701
  • 博文数量: 127
  • 博客积分: 3662
  • 博客等级: 中校
  • 技术积分: 1371
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-02 12:36
个人简介

Linux&MySQL&PHP&Nginx&Apache&MSSQL&Shell

文章分类

全部博文(127)

文章存档

2016年(1)

2015年(8)

2014年(14)

2013年(26)

2012年(17)

2011年(28)

2010年(33)

分类: Mysql/postgreSQL

2013-02-28 16:18:05


标量函数,返回一个值

Use database_name;

GO

if object_id(N'dbo.function_name',N'IF') is not null

drop function dbo.function_name;

GO

create function dbo.function_name(@id int) returns varchar(180) //定义返回值的类型

AS

BEGIN

declare @name varchar(180); //定义返回值

select @name=table_colnum from table_name where id=@id

return @name;

END


使用函数:select dbo.function_name(@id)



表值函数,返回一个表

Use database_name;

GO

if object_id(N'dbo.function_name',N'IF') is not null

drop function dbo.function_name;

GO

create function dbo.function_name(@id int) returns table //定义返回数据为表

AS

return 

(

select * from table_name where id=@id

);

使用函数:select * from dbo.function_name(@id)


-- 截取指定分隔符直接字符串

点击(此处)折叠或打开

  1. USE [SourceDB]
  2. GO
  3. /****** Object: UserDefinedFunction [dbo].[cut_func] Script Date: 2015/1/8 17:20:56 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER FUNCTION [dbo].[cut_func] (@char varchar(100),@str varchar(10),@c int)
  9. RETURNS varchar(10) AS
  10. BEGIN

  11. declare @var varchar(100);
  12. declare @i int;
  13. set @var=@char;
  14. set @i=1;

  15. while(@i <= @c)
  16. BEGIN
  17. set @var=substring(@var,charindex(@str,@var)+1,999);
  18. set @i=@i+1;
  19. END

  20. set @var=left(@var,charindex(@str,@var)-1)

  21. return @var
  22. end


阅读(12602) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~