2016-09-23 12 views
0

我有一个名为intColumn的列,其中包含值valA,valB,...,valNSQL - 如何从列中创建int列表

我需要一个简单的方法来引用这些值的列表传入IN()语句。

也许这可能存储在一个变量中,如intList = valA, valB, ... , valN,其结果将显示为IN(intList)

这样做的动机可以避免在IN()语句中对400个值进行硬编码。

什么是简单的方法来做到这一点?

+1

如果你只需要选择包含这些值的东西,只是做了'加入'到该列的表格。 – Siyual

+0

如果我理解了请求,则子查询就是您想要的。 '在哪里someValue(从表中选择intColumn)' – MikeTheLiar

+2

你能给RDBMS加标签吗? –

回答

0
Select * 
    From SomeTable 
    Where ID in (Select IDs from SomeOtherTable Where SomeCondtion=True) 
2

另外,我甚至不会做一个IN,如果你有这么多的价值观。这是容易做到无论是JOINWHERE EXISTS

JOIN方法:

Select A.* 
From  TableA A 
Join  TableB B On A.SomeColumn = B.IntColumn 

EXISTS方法:

Select * 
From  TableA A 
Where Exists 
(
    Select * 
    From  TableB B 
    Where  A.SomeColumn = B.IntColumn 
)