假设我有以下命令
Declare @input as varchar(500)
set @input = 'abce,dfg'
select substring(substring(@input,1,charindex(',',@input)+1),1,2)
如何在新变量中保存内部子串的结果?
答案 0 :(得分:0)
除非我错过了什么,否则你可以做......
declare @innersub varchar(500)
set @innersub = substring(@input,1,charindex(',',@input)+1)
或者...
declare @innersub varchar(500)
select @innersub = substring(@input,1,charindex(',',@input)+1)
然后您可以使用@innersub
...
select substring(@innersub,1,2)
更新(由于评论中OP的更多信息)
不可能从单个SELECT语句设置变量和返回值。
以下将永远失败......
select field1, @var=field2 from table
修改强>
您是否看过使用返回表的用户定义函数?
CREATE FUNCTION dbo.GetSubString ( @input varchar(500) )
RETURNS @result TABLE ( sub1 varchar(500), sub2 varchar(500) )
AS
BEGIN
INSERT INTO @result (sub1, sub2)
SELECT substring(substring(@input,1,charindex(',',@input)+1),1,2),
substring(@input,1,charindex(',',@input)+1)
RETURN
END
然后你可以称之为......
declare @input varchar(500)
set @input = 'abce,dfg'
select sub1, sub2 from dbo.GetSubString(@input)
答案 1 :(得分:0)
Declare @input as varchar(500),
@cInnerStr varchar(500)
set @input = 'abce,dfg'
Set @cInnerStr = substring(@input,1,charindex(',',@input)+1)
select @cInnerStr