/**==** 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