【问题标题】:Does SQL have a list type that can be used in a WHERE ... IN clause? [duplicate]SQL 是否有可以在 WHERE ... IN 子句中使用的列表类型? [复制]
【发布时间】:2011-01-05 13:27:10
【问题描述】:

可能的重复:
Parameterizing a SQL IN clause?
SQL Server SP - Pass parameter for “IN” array list?

我需要在两个不同的表上搜索一组随意的整数:

SELECT 
  col_1, col_2 
FROM 
  LIKES_NUMBERS 
WHERE 
  col_1 IN (1,2,3,5,7,1021,10041411)

SELECT 
  col_one, col_two 
FROM 
  LIKES_NAMES 
WHERE 
  col_one IN (1,2,3,5,7,1021,10041411)

是否有可以传递给 IN 的 SQL 列表类型,这样我就不会重复自己了?例如

DECLARE @stuff UNOBTAINIUM(1,2,3,5,7,1021,10041411)
-- ...
WHERE col_1 IN (@stuff)
-- ...
WHERE col_one IN (@stuff)

想到创建一个临时表,但这似乎很残酷。

【问题讨论】:

标签: sql tsql


【解决方案1】:

在使用 MS-SQL 时,我倾向于为此目的使用 XML 文档,它可以很容易地从非 SQL 客户端传递(我相信与临时表不同)并通过 MS-SQL 的 T-SQL 语法进行查询。

【讨论】:

  • 显示一个例子
【解决方案2】:

【讨论】:

  • 使用诸如“SQL”“WHERE”“IN”“LIST”之类的搜索词,发现以前回答过的问题并不容易。感谢您的链接!
【解决方案3】:

没有列表类型。临时表应该没问题,或者你可以使用表变量。

【讨论】:

    【解决方案4】:

    是的,您可以为此使用table variable。它就像一个临时表,但在本地范围内。

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 2016-05-15
      • 2022-01-02
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 2013-10-16
      • 1970-01-01
      相关资源
      最近更新 更多