您好,
这是在这里发布的基本问题: Previously posted
我有一个表格,其中包含表格名称,其中包含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的逐行值,因为这将是我与下一个表的连接键。
如果我做错了,请告诉我。
感谢。
答案 0 :(得分: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