【问题标题】:Search Problem in SQL ServerSQL Server 中的搜索问题
【发布时间】:2010-08-10 07:18:52
【问题描述】:

我需要在表格中搜索列中包含所有我想要的值的项目,即 我有桌子:

ID :    1 2 3 3 2 2 2 1 1 3
VALUE : 5 6 5 3 6 7 2 1 9 0

我想为 StoredProc 提供一个值列表,例如 ("6,7,2"),它会返回所有具有所有给定值的 ID,在这种情况下它只会返回 2

如果我想搜索那些至少具有我知道的值之一的值,我可以使用“IN”,但要获得所有值,我什么也没找到。

提前谢谢你

阿夫辛·阿雷菲

【问题讨论】:

  • 您使用的是什么数据库?它们每个都有可能支持这一点的不同功能,因此了解这一点很重要。
  • 我正在使用 MS SQL SERVER 2008 R2

标签: sql-server search stored-procedures sql-server-2008-r2


【解决方案1】:

在 SQL Server 2008 中,您可以使用 table value parameters

这些允许您将值表传递给存储过程并将其视为任何其他表(用于子查询、连接等)。

就查询而言 - 如果您确实使用表值参数,您可以查询它的大小(行数),在 ID 字段上使用 INGROUP BY 和 @ 987654325@计算行数。

【讨论】:

  • 另一种方法是将临时表作为存储过程的输入/输出,但表变量(如果适用)是一种更简洁的解决方案。
  • 谢谢它的工作:从 [CommodityClass] 中选择 CMC_ID,[CommodityClassDynamicAttributes] WHERE (CMC_ID = CCA_CMC_ID) AND (CCA_D​​AT_ID IN (@CCA_D​​AT_ID_LIST)) GROUP BY CMC_ID HAVING COUNT(CCA_D​​AT_ID) = @CCA_D​​AT_ID_COUNT
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多