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

我可以通过

从 myTable 中选择 [dbo].getFormName

这给了我图片中 B 列的结果,它返回所有表单名称。但是,我无法逐行获取每条记录的 FormName。上面的子查询返回超过 1 个值。如何逐行获取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 回答