用SQL语句创建函数测定字符串的第一个字符是否是字母

如题所述

第1个回答  2011-01-17
create function get_first(@name nvarchar)

returns nvarchar(30)
as
begin
declare @nama nvarchar(30)

IF( (ascii(@NAME)>=65 and ascii(@name)<=90) or (ascii(@NAME)>=97 and ascii(@name)<=122))
set @nama= '你输入的首字母是字母'
else
set @nama='你输入的首字母不是字母'

return @nama
end
select dbo.get_first('好人')
/*你输入的首字母不是字母*/

select dbo.get_first('a好人')
/*你输入的首字母是字母*/
第2个回答  2011-01-17
create function chkString(@str varchar(max))
returns varchar(1)
as
begin
if @str like '[a-Z]%'
begin
return 'Y'
end
else
begin
return 'N'
end
end

建议不要在SQL里写函数判断。。。还是放程序里吧
第3个回答  2011-01-17
将第一个字符转换
Ascii(substr(Str,1,1))
如果 在97~122或65~90之间,就是字母
第4个回答  2011-01-17
select left(name,1),name from sysobjects
where charindex(left(name,1),'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz') > 0
第5个回答  2011-01-17
create function dbo.firstabc(@str varchar(100))
returns varchar(2)
as
begin
declare @t varchar(2)
if patindex('%[A-Za-z]%',@str)=1
set @t='是'
else
set @t='否'
return @t
end

select dbo.firstabc('@3dfsfd')
select dbo.firstabc('gf@43(')本回答被提问者采纳