我想要:

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/

10-10 03:13