1

ここに画像の説明を入力 やあ、

これは、ここに投稿された質問への参照です: 以前に投稿されました

Url を含むフォーム名を持つテーブルがあり、その URL からフォーム名のみを取得したいと考えています。写真のように。:

formName を返す関数を作成しました

CREATE FUNCTION [dbo].[getFormName](@p_column varchar(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
declare @FormName varchar(max)
set @FormName = (substring(@p_column,charindex(',',@p_column, 0)+2,50))
RETURN rtrim(@FormName);
END;

GO

そして、私は FormName を取得することができました

myTable から [dbo].getFormName を選択します

これにより、図の列 B に結果が表示され、すべてのフォーム名が返されます。ただし、行ごとに各レコードの FormName を取得できませんでした。上記のサブクエリは、複数の値を返します。行ごとに formName を取得するにはどうすればよいですか? それが次のテーブルとの結合キーになるため、各 FormName の行ごとの値が必要です。

間違っている場合はお知らせください。

ありがとう。

4

1 に答える 1

1

これを試して:

DECLARE @temp TABLE (col varchar(100))
INSERT INTO @temp( col )
VALUES 
('http://myServer/Lists/myform/DispForm.aspx?ID=6, RAB12EGH234'),
('http://myServer/Lists/myform/DispForm.aspx?ID=5, CBTRR2345')

SELECT FormNameWithUrl = col, FormName = SUBSTRING(col, 
    CASE WHEN CHARINDEX(',', col, 0) = 0 
        THEN 0 
        ELSE CHARINDEX(',', col, 0) + 2 
    END, 50)
FROM @temp

戻り値:

FormNameWithUrl                                                 FormName
--------------------------------------------------------------- --------------
http://myServer/Lists/myform/DispForm.aspx?ID=6, RAB12EGH234    RAB12EGH234
http://myServer/Lists/myform/DispForm.aspx?ID=5, CBTRR2345      CBTRR2345
于 2013-05-10T19:15:06.497 に答える