我使用T-SQL创建了一个小函数,它将一个输入参数作为电话号码并从中返回区号。功能编译成功但只获得电话号码的第一位而不是三位数。
参考下面的代码: -
create or alter function getareacode (@phoneno as nvarchar)
returns nvarchar(10)
with schemabinding
as
begin
declare @areacode as nvarchar(10);
select top(1) @areacode = value from string_split(@phoneno,'-');
return @areacode;
end;
select dbo.getareacode( N'123-456-789');
答案 0 :(得分:4)
(@phoneno as nvarchar)
将仅生成第一个字符
试
(@phoneno as nvarchar(50))
但是,可能没有必要进行拆分
尝试以下方法。它可能更具性能
Declare @S nvarchar(50) = '123-456-789'
Select left(replace(replace(replace(@S,'-',''),'(',''),')',''),3)