NAME | CODE | DATE |
---|---|---|
张三三310011195503073253 | 330401025 | 2012-7-1 |
李四四310011195501223246 | 330401025 | 2012-7-1 |
王五310011195109244616 | 330401005 | 2012-6-20 |
马六310011195503212428 | 330401010 | 2012-6-20 |
表名:test_charge
对上表的人按出生年份进行分组查询
create function dbo.GetSFZFromName(@str nvarchar(100))
returns bigint
as
begin
while patindex('%[^0-9]%',@str)>0
begin
set @str=stuff(@str,patindex('%[^0-9]%',@str),1,'')
end
return convert(bigint,@str)
End
SELECT name AS ‘姓名’ FROM test_charge
GROUP BY YEAR
WHERE YEAR =
SELECT SUBSTRING(
'SELECT dbo.GetSFZFromName (name) FROM test_charge',7,4
)
)
这是自己写的
回过来看看自己都晕了!
select name from test_charge group by substr(date,1,4),name;