列の値を処理し、'@' 記号の前のすべての値を返す関数を作成しようとしています。
次のコードを使用して、これまでのところこれを行うことができました。
Create Function fnStaffCodeConvert (@staffcode varchar(10))
Returns varchar(4)
AS
BEGIN
DECLARE @staffinitals varchar(4)
SET @staffinitals = (SELECT substring(@staffcode,0, CHARINDEX('@',@staffcode)))
Return @staffinitials
END
関数の結果の例 - = のパラメータ、 =ABC@123
を返しますABC
。
これは機能しますが、列に値が含まれているすべての結果を排他的に返し、@
値のない残りの結果@
は省略されます。つまり、返されますが、何もABC@123
返されません。ABC
XYZ
コードを修正して、両方の値のセットを取得するにはどうすればよいですか? そこに「IF」ステートメントを入れる必要があると思いますが、必要な結果を得るためにそれを書く方法がわかりません。
よろしくお願いします:)
マイク