没有使用T-SQL从函数输出欲望

时间:2017-08-15 22:35:35

标签: sql sql-server function tsql

我使用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');  

1 个答案:

答案 0 :(得分:4)

(@phoneno as nvarchar)将仅生成第一个字符

(@phoneno as nvarchar(50))

但是,可能没有必要进行拆分

尝试以下方法。它可能更具性能

Declare @S nvarchar(50) = '123-456-789'

Select left(replace(replace(replace(@S,'-',''),'(',''),')',''),3)