次のコマンドがあるとします
Declare @input as varchar(500)
set @input = 'abce,dfg'
select substring(substring(@input,1,charindex(',',@input)+1),1,2)
内部部分文字列の結果を新しい変数に保存するにはどうすればよいですか?
次のコマンドがあるとします
Declare @input as varchar(500)
set @input = 'abce,dfg'
select substring(substring(@input,1,charindex(',',@input)+1),1,2)
内部部分文字列の結果を新しい変数に保存するにはどうすればよいですか?
私が何かを見逃していない限り、あなたはどちらかを行うことができます...
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)
Declare @input as varchar(500),
@cInnerStr varchar(500)
set @input = 'abce,dfg'
Set @cInnerStr = substring(@input,1,charindex(',',@input)+1)
select @cInnerStr