当前位置:首页 » 编程语言 » sqlserver创建自定义函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlserver创建自定义函数

发布时间: 2022-09-03 08:15:08

sqlserver存储过程如何调用自定义函数

返回单个值的函数, 可以当变量用, 比如 select dbo.函数名(参数1, 参数2, ...) from ...where abc = dbo.函数名(参数1, 参数2...)

返回表的函数, 可以当数据表来使用, 比如 select * from dbo.函数名(参数1, 参数2, ...)

❷ 帮忙在SQLserver数据库中创建一个自定义函数funShipFee,用于计算邮寄印刷品的费用

CREATE FUNCTION [DBO].[funShipFee]
( @WG NUMERIC(28,4)--定义重量为数字型
)
RETURNS NUMERIC(28,4)
BEGIN
DECLARE @Value NUMERIC(28,4)--返回的值
DECLARE @REM NUMERIC(28,4)--余数
IF @WG < 100
SET @Value = 0.3
ELSE
BEGIN
SET @Value = 0.3
IF @WG < 5000
BEGIN
SET @REM = @WG % 100
IF @REM <> 0
SET @Value= @Value+(ROUND((@WG-100)/100,0)+1)*0.15
ELSE
SET @Value= @Value+ROUND((@WG-100)/100,0)*0.15
END
ELSE
BEGIN
SET @REM = @WG % 100
IF @REM <> 0
SET @Value= @Value+(ROUND((@WG-100)/100,0)+1)*0.12
ELSE
SET @Value= @Value+ROUND((@WG-100)/100,0)*0.12
END
END

RETURN @Value
END

❸ C#怎么调用sqlserver的自定义函数

sql server 自定义函数的使用
自定义函数

用户定义自定义函数像内置函数一样返回标量值,也可以将结果集用表格变量返回
用户自定义函数的类型:
标量函数:返回一个标量值
表格值函数{内联表格值函数、多表格值函数}:返回行集(即返回多个值)

1、标量函数
Create function 函数名(参数)
Returns 返回值数据类型
[with {Encryption | Schemabinding }]
[as]
begin
SQL语句(必须有return 变量或值)

End

Schemabinding :将函数绑定到它引用的对象上(注:函数一旦绑定,则不能删除、修改,除非删除绑定)


Create function AvgResult(@scode varchar(10))
Returns real
As
Begin
Declare @avg real
Declare @code varchar(11)
Set @code=@scode + ‘%’
Select @avg=avg(result) from LearnResult_jiali
Where scode like @code
Return @avg
End

执行用户自定义函数
select 用户名。函数名 as 字段别名
select dbo.AvgResult(‘s0002’) as result

用户自定义函数返回值可放到局部变量中,用set ,select,exec赋值
declare @avg1 real ,@avg2 real ,@avg3 real
select @avg1= dbo.AvgResult(‘s0002’)
set @avg2= dbo.AvgResult(‘s0002’)
exec @avg3= dbo.AvgResult ‘s0002’
select @avg1 as avg1 ,@avg2 as avg2 ,@avg3 as avg3

函数引用

create function code(@scode varchar(10))
returns varchar(10)
as
begin
declare @ccode varchar(10)
set @scode = @scode + ‘%’
select @ccode=ccode from cmessage
where ccode like @scode
return @ccode
end

select name from class where ccode = dbo.code(‘c001’)

2、表格值函数
a、 内联表格值函数
格式:
create function 函数名(参数)
returns table
[with {Encryption | Schemabinding }]
as
return(一条SQL语句)

create function tabcmess(@code varchar(10))
returns table
as
return(select ccode,scode from cmessage where ccode like @ccode)

b、 多句表格值函数
create function 函数名(参数)
returns 表格变量名table (表格变量定义)
[with {Encryption | Schemabinding }]
as
begin
SQL语句
end

多句表格值函数包含多条SQL语句,至少有一条在表格变量中填上数据值
表格变量格式
returns @变量名 table (column 定义| 约束定义 [,…])
对表格变量中的行可执行select,insert,update,delete , 但select into 和 insert 语句的结果集是从存储过程插入。

Create function tabcmessalot (@code varchar(10))
Returns @ctable table(code varchar(10) null,cname varchar(100) null)
As
Begin
Insert @ctable
Select ccode,explain from cmessage
Where scode like @code
return
End

Select * from tabcmessalot(‘s0003’)

来自:http://hi..com/datachina/blog/item/801def0366c4e7ea09fa9344.htmlC#调用SQL自定义函数返回值

代码
1 --SQL自定义函数:
2
3 CREATE FUNCTION [GetProjectID] (@headStr nvarchar(10),@date datetime)
4 )
5
6 RETURNS NVARCHAR(200)
7
8 AS
9
10 BEGIN
11
12 --不能在自定义函数中用INSERT INTO
13
14 --insert into emos_cust(cust_name,dates)values(
15
16 --@headStr,@date
17
18 --)
19
20 return 'TEST BY HANSHU'
21 END
代码
1 /// <summary>
2 /// 获取项目文件编号 涂聚文
3 /// </summary>
4 private void FileNo()
5 {
6
7 SqlConnection conn = new SqlConnection(connectionString);
8 string strSql = "GetProjectID"; //自定SQL函数
9 SqlCommand cmd = new SqlCommand(strSql, conn);
10 cmd.CommandType = CommandType.StoredProcere;
11 cmd.Parameters.Add("@headStr", SqlDbType.NVarChar).Value = "ZQ3"; //输入参数
12 cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = System.DateTime.Now.ToShortDateString(); //输入参数
13 cmd.Parameters.Add("@returnString", SqlDbType.NVarChar);
14 cmd.Parameters["@returnString"].Direction = ParameterDirection.ReturnValue; //返回参数
15 try
16 {
17 conn.Open();
18 object o= cmd.ExecuteScalar();
19
20 this.txtAFileNO.Text = cmd.Parameters["@returnString"].Value.ToString();
21
22 //Response.Write("");
23
24 }
25 catch (Exception ex)
26 {
27
28 this.txtAFileNO.Text = ex.Message;
29
30 }
31 finally
32 {
33
34 if (!(conn.State == ConnectionState.Closed))
35 {
36
37 conn.Close();
38
39
40 }
41
42 }
43
44
45 }

❹ 创建SQLServer自定义函数报错,可是同样的代码可以创建过程! 求大神帮忙看看!!!

存储过程可以 你就建存储过程呗
你这个 报错很明显 函数 不让你这么干
在函数内对带副作用的运算符 'SELECT INTO' 的使用无效。
你换个招试试
比如 select count(*)=@v_count as dd from khn_configgroup where config_id=@template_id and group_id=@group_id;
sqlsever函数变量如何赋值我也不是很清楚 没用过
或者用 set let

❺ SqlServer如何用Sql语句自定义聚合函数

有两个写法:

select*fromtblDept
whereidin(
count(casewhenSalary>3000then1elsenullend)*1.0/count(*)>0.5)

select*fromtblDept
whereidin(
sum(casewhenSalary>3000then1else0end)*1.0/count(*)>0.5)

❻ SQLServer里用户自定义函数写在哪

drop FUNCTION [dbo].[jzf_Get_IDNO]

go

-- =============================================

-- Author: <Author,,Name>

-- Create date: <Create Date, ,>

-- Description: <Description, ,>

-- =============================================

create FUNCTION [dbo].[jzf_Get_IDNO]

(

-- Add the parameters for the function here

@ApartID nvarchar(40)

)

RETURNS nvarchar(40)

AS

BEGIN

-- Declare the return variable here

DECLARE @str nvarchar(40)

set @str=N'未查到'

-- Add the T-SQL statements to compute the return value here

SELECT @str=Isnull(IDNO,N'未定义') from mytable where objectid=@ApartID


-- Return the result of the function

RETURN @str


---------------------结果显示在,上述函数是标量值函数:

❼ 如何在sql中定义一个函数,函数功能是传入一个字符串,返回这个字符串中的数

1通过VisualStudio2008新建一个SQLServer项目。2,配置连接的数据库点击上一步确定后,可以通过添加新引用来添加一个数据库连接(只适用MS SQL Server 2005或以上版本,再次提醒哦),添加以后选择其中一个数据库点击确。3,添加一个自定义函数。然后编写自定义函数的类即可。
用户自定义函数是指如果要在公式或计算中使用特别复杂的计算,而工作表函数又无法满足需要,则需要创建用户自定义函数。

❽ sqlserver里关于自定义函数的问题

应该是调用时没有传入参数。
如自定义函数:
create function f_GetString
(@para nvarchar(40))
RETURNS nvarchar(100)
as
begin
declare @s nvarchar(100)
set @s=''
select @s=field1 from table
return @s
end
---------------调用
String sql="select a,b,c,dbo.f_GetString(d) as S from table ..."
如果用
String sql="select a,b,c,dbo.f_GetString() as S from table ..."
会提示函数未传入参数。
可在查询分析器中检验SQL语句是否正常

❾ SQLSERVER里如何自定义函数

CREATE FUNCTION 函数名 ( @参数1 VARCHAR(10),参数2,int )

RETURNS varchar(30) --返回值及类型
AS
BEGIN
语句
RETURN 结果值
END

❿ sqlserver 自定义聚合函数 sqlserver 2008 有没有自定义聚合函数的写法,不要标量值函数和c#的方法。

监听配置:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
我的Oracle监听及tnsnames.ora所在目录:C:\app\Administrator\proct\11.1.0\db_1\NETWORK\ADMIN