我已经找到了这样做的功能,但是现在我遇到了这个问题,我需要解析用户输入的参数,用户将输入类似11234#Elgin,address1,Address2我需要取出的东西第一个参数中的数字和#以便我只留下Elgin,我的函数看起来像这样:
CREATE FUNCTION dbo.JohnnyAddress1 (@office varchar(max), @home varchar(max), @school varchar(max))
RETURNS varchar(max)
as begin
declare @return varchar(max)
set @return = case @office
when 'Elgin' then @home
when 'Simcoe' then @school
when 'Grey Bruce' then @home
when 'Toronto School' then @school
when 'Muskoka School' then @school
when '' then ''
end
Return @return
end
我在想这样的事情:
declare @parsed varchar(max)
parsename(replace(@office,'#','.'),2) as @parsed
但是我对语法以及如何在我的案例中使用@parsed毫无头绪。
答案 0 :(得分:0)
您没有指定您使用的SQL风格。这适用于T-SQL。
Select Right('1234#Elgin',Len('1234#Elgin')-Charindex('#','1234#Elgin',0))
从“#”的位置开始选择字符串的右侧部分。
答案 1 :(得分:0)
功能(1111#Elgin,Adress1,Address2)我需要拆分1111#Elgin 把它变成只是埃尔金,总会有一个#然后是名字,而且 我需要更改此参数才能使函数正常工作:
我认为这是#
左侧和,
或
SET @X = RIGHT(@INPUT,Charindex('#',@INPUT))
SET @Y = LEFT(@X, CHARINDEX(',',@X))
SELECT @Y