列の値を処理し、'@' 記号の前のすべての値を返す関数を作成しようとしています。
次のコードを使用して、これまでのところこれを行うことができました。
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返されません。ABCXYZ
コードを修正して、両方の値のセットを取得するにはどうすればよいですか? そこに「IF」ステートメントを入れる必要があると思いますが、必要な結果を得るためにそれを書く方法がわかりません。
よろしくお願いします:)
マイク