打印本文 打印本文 关闭窗口 关闭窗口
SQL Server BUG集之自定义函数与group by
作者:武汉SEO闵涛  文章来源:敏韬网  点击数927  更新时间:2007/11/14 11:14:29  文章录入:mintao  责任编辑:mintao

/**==** 1. 自定义函数用于group by时出错 **==**/
--一个简单的函数
create function f_str(@str sysname,@i int)
returns char(1)
as begin
 return(substring(@str,@i,1))
end
go

--下面是测试

--定义测试数据
declare @t table(name sysname)
insert into @t values(''''abcd'''')

--有group by的情况,结果错误
select a=dbo.f_str(name,1),b=dbo.f_str(name,2)
from @t
group by dbo.f_str(name,1),dbo.f_str(name,2)

--无group by的情况,结果正确
select a=dbo.f_str(name,1),b=dbo.f_str(name,2)
from @t
go

--删除测试的自定义函数
drop function f_str

/*--测试结果
a    b   
---- ----
a    a

(所影响的行数为 1 行)

a    b   
---- ----
a    b

(所影响的行数为 1 行)
--*/

打印本文 打印本文 关闭窗口 关闭窗口