IISログの 'csUriQuery'フィールドに格納されているパラメータのセットを解析する必要がありました。これは、id=3598308&user=AD\user¶meter=1&listing=No
がthis formatに必要です。
私は次のように仮定して、間の文字列を達成するために、ユーザー定義関数を作成することになった:
- を開始発生が見つからない場合は、終了した場合、
NULL
が返され、
- されます発生が見つからない、文字列の残りは
を返された。ここのコードです:
CREATE FUNCTION dbo.str_between(@col varchar(max), @start varchar(50), @end varchar(50))
RETURNS varchar(max)
WITH EXECUTE AS CALLER
AS
BEGIN
RETURN substring(@col, charindex(@start, @col) + len(@start),
isnull(nullif(charindex(@end, stuff(@col, 1, charindex(@start, @col)-1, '')),0),
len(stuff(@col, 1, charindex(@start, @col)-1, ''))+1) - len(@start)-1);
END;
GO
上記の質問については0
は、使用法は次のとおりです。
DECLARE @a VARCHAR(MAX) = 'All I knew was that the dog had been very bad and required harsh punishment immediately regardless of what anyone else thought.'
SELECT dbo.str_between(@a, 'the dog', 'immediately')
-- Yields' had been very bad and required harsh punishment '
あなたはどのようなエラーを取得しているか、何を返していますか? – eatonphil
「犬は非常に悪く、厳しい罰がすぐに守られなければならない」 –