我想要:
SELECT someID FROM table1 WHERE someID IN (1,1,2,2,3)
回来
someID
1
1
2
2
3
现在,它仅返回IN子句中的不同值,如下所示:
someID
1
2
3
我使用Microsoft SQL Server,并且我的表包含唯一的someID和PLSRec。
CREATE TABLE [dbo].[table1](
[someID] [int] IDENTITY(1,1) NOT NULL,
[PLSRec] [int] NOT NULL,
CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED
(
怎么样?:
DECLARE @table2 table(someID int)
INSERT INTO @table2(someID) VALUES (184),(132);
SELECT * FROM @table2 LEFT JOIN table1 ON @table2.someID=table1.someID
(除非INSERT INTO语句返回“','附近的语法不正确”)
最佳答案
它将仅根据IN()的值检查行的someID。
不管IN()的样子如何,它都不会返回比匹配该值的行更多的结果。
关于sql - SQL:IN子句有问题,如何返回所有值,甚至重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7427547/