用户自定义函数可以像系统函数一样在查询或存储过程中调用,可以接受参数、执行操作并将操作结果以值的形式返回。返回值可以是单个标量或结果集。1. 标量函数 标量函数返回一个确定类型的标量值,对于多语句的标量函数,定义在BEGIN END块中的函数体包含一系列返回单个值的T-SQL语句。2. 表值函数 表值函数是返回数据类型为table的函数,返回的表值是单个SELECT语句查询的结果。原文:http://www.cnblogs.com/libingql/p/416...
--数字处理的几个常用自定义Sql函数--小数开头没有0和末尾多余0处理CREATEfunction[dbo].[FormatFloat](@decdecimal(18,10))returnsvarchar(30)asbegindeclare@inValuevarchar(30);set@inValue= (CONVERT(decimal(18,10),@dec));declare@returnValuevarchar(30)if(@inValue=‘‘)set@returnValue=‘‘--空的时候为空elseif (charindex(‘.‘,@inValue) =‘0‘)set@returnValue=@inValue--针对不含小数点的elseif ( substring(rever...
编号标准宗地编码(landCode)所在区段编码(sectCode)1131001BG001G0012131001BG002G0013131001BG003G0014131001BG004G0025131001BG005G003现在需要将表中的数据转换为如下表所示结果:编号区段编码包含的标准宗地1G001131001BG001,131001BG002,131001BG0032G002131001BG0043G003131001BG005在SQL server数据库中,创建自定义函数,通过游标,将表的数据转化为结果表,函数代码如下所示: 复制代码 代码如下:create function combstr...
关于SQL Server用户自定义的函数,有标量函数、表值函数(内联表值函数、多语句表值函数)两种。题外话,可能有部分朋友不知道SQL Serve用户自定义的函数应该是写在哪里,这里简单提示一下,在Microsoft SQL Server Managerment Studio里面,展开具体需要创建SQL Server用户自定义函数的数据库(即每个用户自定义函数只针对具体的一个数据库有用),然后找到可编程性选项,再展开找到函数选项,在具体的函数选项里面可参照下图的方...
if exists(
SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N‘gettime‘) AND type in (N‘FN‘, N‘IF‘, N‘TF‘, N‘FS‘, N‘FT‘))-- 判断是否存在该自定义函数
drop function gettime -- 删除该自定义函数
go
create function gettime(@t datetime) ---- 创建自定义函数带参数
returns datetime --返回值类型
as
begin declare @a datetime --声明变量set @a =‘2014-02-01‘ -- 为该变量赋值return @a -- 返回
e...
CREATE FUNCTION [<schema name>.]<function name>
(
[ <@parameter name> [AS] [<schema name>.]<data type> [= <default value> [READONLY]] [,...n] ]
)
RETURNS { <scalar type> | TABLE [(<table definition>)] }
[ WITH [ENCRYPTION] | [SCHEMABINDING] | [RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ] |
[EXECUTE AS {CALLER|SELF|OWNER|<‘user name‘>}]
[AS] { EXTERNAL NAME <externam method> |
BEGIN
[<func...
create function Func_StrArrayLength 2 ( 3 @str varchar(1024), --要分割的字符串 4 @split varchar(10) --分隔符号 5 ) 6 returns int 7 as 8 begin 9 declare @location int
10 declare @start int
11 declare @length int
12
13 set @str=ltrim(rtrim(@str))
14 set @location=charindex(@split,@str)
15 set @length=1
16 while @location<>0
17 begin
18 set @start=@l...
create function Func_StrArrayLength 2 ( 3 @str varchar(1024), --要分割的字符串 4 @split varchar(10) --分隔符号 5 ) 6 returns int 7 as 8 begin 9 declare @location int
10 declare @start int
11 declare @length int
12
13 set @str=ltrim(rtrim(@str))
14 set @location=charindex(@split,@str)
15 set @length=1
16 while @location<>0
17 begin
18 set @start=@l...
二、返回标量值的UDF这种类型的UDF和大多数SQL Server内置函数一样,会向调用脚本或存储过程返回标量值,像GETDATE()或USER()函数就会返回标量值。UDF的返回值并不限于整数,而是可以返回除了BLOB、游标(cursor)和时间戳以外的任何有效的SQL Server数据类型(包括用户自定义类型)。几时想返回整数,UDF也有以下两个吸引人的方面。与存储过程不同,用户自定义函数返回值的目的是提供有意义的数据;而对于存储过程来说,返回值只能说明...
--Author: sq
--说明:被分割后的字段为:short_str
--支持分割符多字节
--使用方法
--Select * FROM splits(‘1203401230105045‘,‘0‘)
--Select * FROM splits(‘1203401230105045‘,‘123‘) --select t1.id,t2.short_str from Table1 as t1 cross apply Splits(t1.name,‘,‘) as t2
-- cross apply 为2005以上版本才有的函数
CREATE FUNCTION splits(@Long_str NVARCHAR(MAX),@split_str NVARCHAR(100))
RETURNS @tmp ...
create function 函数名 (@pno int) returns int as begin declare @a int if not exists(select * from person where pno=@pno) set @a=-1 else set @a=1 return @a end 调用函数: use 数据库名 go select dbo.函数名(13250)sql server 自定义函数标签:本文系统来源:http://www.cnblogs.com/zhangzhifeng/p/4626453.html
不多说了,说明后面是完整的代码,用来将字符串型的字段的各行的值拼成一个大字符串,也就是通常所说的Concat
例如有如下表dict
ID
NAME
CATEGORY 1
RED
COLOR 2
BLUE
COLOR 3
APPLE
FRUIT 4
ORANGE
FRUIT
执行SQL语句:select category,dbo.concatenate(name) as names from dict group by category.
得到结果表如下
category
names COLOR
REDBLUE FRUIT
APPLEORANGE
如果觉得需要用逗号或分号或其他任何你想要的分...
Create function 函数名(参数)
2 Returns 返回值数据类型
3 [with {Encryption | Schemabinding }]
4 [as]
5 begin
6 SQL语句(return变量)
7 End
8 注:Schemabinding将函数绑定到它引用的对象上(注:函数一旦绑定,则不能删除、修改,除非删除绑定)View Code
表值函数-内嵌函数:
1 create function 函数名(参数)
2 returns table
3 [with {Encryption | Schemabinding }]
4 as
5 return(一条SQL语句)View Code
表值函数...
在SQL Server中不仅可以使用系统函数(如:聚合函数,字符串函数,时间日期函数等)还可以根据需要自定义函数。
自定义函数分为标量值函数和表值函数。
其中,标量值函数用于返回单个值,而表值函数用于返回一个结果集。
函数参数
参数可以是常量、表中的某个列、表达式或其他类型的值。在函数中有三种类型的参数。
1、输入:指必须输入一个值。
2、可选值:在执行该参数时,可以选择不输入参数。
3、默认值:函数中默认有值存在,...
说明:本文依据网络转载整理而成,因为时间关系,其中原理暂时并未深入研究,只是整理备份留个记录而已。
目标:在SQL Server中自定义聚合函数,在Group BY语句中 ,不是单纯的SUM和MAX等运算,可以加入拼接字符串。
环境:
1:Sqlserver 2008 R2
2:Visual Studio 2013
第一部分:
.net代码:using System;
using System.Data;
using Microsoft.SqlServer.Server;
using System.Data.SqlTypes;
using System.IO;...