我有一个问题要问你。 我需要一个想法来搜索sql报告服务中的长参数列表中的项目。 例如,在要选择的参数列表中有一些数值,我必须选择其中一些。找到这些值存在问题,因为列表太大。 通过前几个字母搜索的东西会很棒,但可能是不可能的。 现在我真的不知道如何通过智能方法从参数列表中找到几个感兴趣的值。 请帮忙。
答案 0 :(得分:1)
根据您的要求,我发现了一篇很棒的文章,详细解决了这个问题:
在数据库中创建一个函数。
CREATE FUNCTION [dbo].[SplitParameterValues] (@InputString NVARCHAR(max), @SplitChar VARCHAR(5))
RETURNS @ValuesList TABLE
(
param NVARCHAR(255)
)
AS
BEGIN
DECLARE @ListValue NVARCHAR(max)
SET @InputString = @InputString + @SplitChar
WHILE @InputString!= @SplitChar
BEGIN
SELECT @ListValue = SUBSTRING(@InputString , 1, (CHARINDEX(@SplitChar, @InputString)-1))
IF (CHARINDEX(@SplitChar, @InputString) + len(@SplitChar))>(LEN(@InputString))
BEGIN
SET @InputString=@SplitChar
END
ELSE
BEGIN
SELECT @InputString = SUBSTRING(@InputString, (CHARINDEX(@SplitChar, @InputString) + len(@SplitChar)) , LEN(@InputString)-(CHARINDEX(@SplitChar, @InputString)+ len(@SplitChar)-1) )
END
INSERT INTO @ValuesList VALUES( @ListValue)
END
RETURN
END
使用获取可用值的过程,请参阅以下查询:
create PROCEDURE sp (@keyword nvarchar(50))
AS
SELECT col
FROM table d
inner join (SELECT [param] FROM SplitParameterValues (@keyword,',')) s on d.col like (s.[param]+'%')
然后创建一个用于提供关键字的参数。然后根据关键字添加另一个级联参数。有关详细步骤,请阅读以下链接中的源文章:
[Forum FAQ]How do I add a search feature in the parameter with long drop down list?