需要根据SQL查询中的表行检查参数

需要根据SQL查询中的表行检查参数,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,我想构建一个sql查询,其中一个表单字段不应该包含公共名称(在单独的表中维护单词列表),我正在将该字段的值作为参数传递,并希望检查它不应该包含该表中的任何公共名称 如何使用sql查询实现这一点 注意:如果通用名称为“abc”,而我将参数传递为“!abc123'因为它包含单词query,所以应该返回false 提前感谢。尝试类似(未测试的查询): 基本上,您需要字符串匹配选项: 查看选项并阅读相关内容这就是您要寻找的吗 SELECT (COUNT(*) == 0) FROM tablewithco

我想构建一个sql查询,其中一个表单字段不应该包含公共名称(在单独的表中维护单词列表),我正在将该字段的值作为参数传递,并希望检查它不应该包含该表中的任何公共名称

如何使用sql查询实现这一点

注意:如果通用名称为“abc”,而我将参数传递为“!abc123'因为它包含单词query,所以应该返回false

提前感谢。

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

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


查看选项并阅读相关内容

这就是您要寻找的吗

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

   IF NOT EXISTS(SELECT word FROM CommonWord WHERE @yourparam 
                 LIKE '%' + word + '%')
    BEGIN
       RETURN 1
    END
    ELSE
    BEGIN
      Return 0
    END
如果
@yourParam
包含在您不想使用的任何单词或名称中,则此操作有效。如果表中的任何行都不包含它,则它仅返回1


我只是这样写这句话(你可以用一个简单的Exists而不是notexists),因为你可能想扩展真正部分的功能

我建议您必须在文本框中使用按键事件,然后在文本框中输入每个字符后处理代码

   IF NOT EXISTS(SELECT word FROM CommonWord WHERE @yourparam 
                 LIKE '%' + word + '%')
    BEGIN
       RETURN 1
    END
    ELSE
    BEGIN
      Return 0
    END
if exists (select * from reservedwords where @parameter like '%'+word + '%')
    select 0 
else
    select 1