需要在SQL Query中检查表行的参数

时间:2012-09-18 07:58:32

标签: sql sql-server-2008-r2

我想构建一个sql查询,因为我的表单中的一个不应该包含常用名称(在单独的表中维护单词列表)并且我将该字段的值作为参数传递并且想要检查它是否应该不包含该表中的任何通用名称。

如何使用sql查询实现这一目标?

注意:如果常用名称为'abc',我将参数传递为'!abc123',因为它包含该字查询应该返回false。

提前致谢。

5 个答案:

答案 0 :(得分:3)

尝试类似(未经测试的查询):

SELECT CommonName 
FROM CommonNamesTable 
WHERE CommonName like '%NameToTest%' 
OR CONTAINS(NameToTest, CommonName);

基本上你需要字符串匹配选项:

查看CONTAINS的选项并阅读Queries with full text search

答案 1 :(得分:2)

这是你要找的吗?

SELECT (COUNT(*) == 0) FROM tablewithcommonwords 
WHERE wordfromform LIKE CONCAT('%', wordcolumnnfromcommonwordstable, '%');

答案 2 :(得分:0)

试试这个:

   IF NOT EXISTS(SELECT word FROM CommonWord WHERE @yourparam 
                 LIKE '%' + word + '%')
    BEGIN
       RETURN 1
    END
    ELSE
    BEGIN
      Return 0
    END

如果@yourParam包含在任何单词或名称中,您不想使用的内容,则此方法有效。如果表中的任何行未包含它,则仅返回1。

我只是通过这种方式表达这句话(你可以使用简单的Exists而不是NOT Exists),因为你可能想要扩展真实部分的功能。

答案 3 :(得分:0)

if exists (select * from reservedwords where @parameter like '%'+word + '%')
    select 0 
else
    select 1

答案 4 :(得分:0)

我想建议您必须在TextBox中使用keypress事件,然后在每个字符输入TextBox后处理您的代码。