我有一个返回 5 个结果的查询,这是正确的。我现在正在尝试将其重新写入存储过程。
原始查询:
SELECT something FROM myTable where
ORG + '-' + ORGSUB like '2342342-________' or
ORG + '-' + ORGSUB like '5435354-________' or
ORG + '-' + ORGSUB like '_______-________'
但我现在想以ORG
逗号分隔列表的形式传入,所以它看起来像:
SELECT ORG + '-' + ORGSUB FROM myTable where
ORG + '-' + ORGSUB in('2342342-________','5435354-________' ,'_______-________')
但我在这里得到 0 个结果。
我也尝试使用 Split 功能,如下所示:
ALTER FUNCTION [dbo].[udf_Split]
(
@psCSString VARCHAR(max)
)
RETURNS @otTemp TABLE(sID VARCHAR(50))
AS
BEGIN
DECLARE @sTemp VARCHAR(50)
WHILE LEN(@psCSString) > 0
BEGIN
SET @sTemp = LEFT(@psCSString, ISNULL(NULLIF(CHARINDEX(',', @psCSString) - 1, -1),
LEN(@psCSString)))
SET @psCSString = SUBSTRING(@psCSString,ISNULL(NULLIF(CHARINDEX(',', @psCSString), 0),
LEN(@psCSString)) + 1, LEN(@psCSString))
INSERT INTO @otTemp VALUES (@sTemp)
END
RETURN
END
创建存储过程并在顶部声明所有变量
SELECT something
FROM myTable
where ORG + '-' + ORGSUB in (select * from udf_Split(@orgList) as Split)
但这也给了我一个大胖子 0。