STRING 值的 SSRS 隐藏参数逻辑方法
SSRS Hidden Parameter Logic Approach For STRING values
DECLARE @rpmProvider varchar(MAX) = 'Prudhvi, raj,Lalith, Kumar';
CREATE TABLE #PrvFilt(ID varchar(50))
DECLARE @xml xml
BEGIN
SET @xml = cast(('<X>' + @rpmProvider + '</X>') as xml)
INSERT INTO #PrvFilt (ID)
SELECT N.value('.', 'varchar(50)') as value
FROM @xml.nodes('X') as T(N);
END;
SELECT * from #PrvFilt
DROP TABLE #PrvFilt
实际输出:
Prudhvi, raj,Lalith, Kumar
预期输出:
- Prudhvi, raj
- Lalith, Kumar
您查询的问题是您没有用 XML 分隔各个名称。
很遗憾,您的名字和姓氏用逗号分隔,全名也用逗号分隔。
IF 你的名字和姓氏 总是 有一个 逗号和一个 space 但整个名称将仅由逗号分隔,那么这应该有效。
DECLARE @rpmProvider varchar(MAX) = 'Prudhvi, raj,Lalith, Kumar';
DECLARE @xml xml
DECLARE @XMT_TEXT AS VARCHAR(200)
SET @XMT_TEXT = REPLACE(REPLACE(REPLACE(@rpmProvider, ', ', '|'), ',', '</X><X>'), '|', ', ')
SET @xml = cast(('<X>' + @XMT_TEXT + '</X>') as xml)
SELECT N.value('.', 'varchar(50)') as value
FROM @xml.nodes('X') as T(N);
DECLARE @rpmProvider varchar(MAX) = 'Prudhvi, raj,Lalith, Kumar';
CREATE TABLE #PrvFilt(ID varchar(50))
DECLARE @xml xml
BEGIN
SET @xml = cast(('<X>' + @rpmProvider + '</X>') as xml)
INSERT INTO #PrvFilt (ID)
SELECT N.value('.', 'varchar(50)') as value
FROM @xml.nodes('X') as T(N);
END;
SELECT * from #PrvFilt
DROP TABLE #PrvFilt
实际输出:
Prudhvi, raj,Lalith, Kumar
预期输出:
- Prudhvi, raj
- Lalith, Kumar
您查询的问题是您没有用 XML 分隔各个名称。
很遗憾,您的名字和姓氏用逗号分隔,全名也用逗号分隔。
IF 你的名字和姓氏 总是 有一个 逗号和一个 space 但整个名称将仅由逗号分隔,那么这应该有效。
DECLARE @rpmProvider varchar(MAX) = 'Prudhvi, raj,Lalith, Kumar';
DECLARE @xml xml
DECLARE @XMT_TEXT AS VARCHAR(200)
SET @XMT_TEXT = REPLACE(REPLACE(REPLACE(@rpmProvider, ', ', '|'), ',', '</X><X>'), '|', ', ')
SET @xml = cast(('<X>' + @XMT_TEXT + '</X>') as xml)
SELECT N.value('.', 'varchar(50)') as value
FROM @xml.nodes('X') as T(N);