假设有没有空,你的号码是整数,你的字符串没有空格需要被修剪:
CREATE TABLE [dbo].[Mailbox](
[ID] [int] NOT NULL,
[MailboxId] [varchar](10) NULL,
[Connection] [int] NULL,
[EmailId] [int] NULL,
CONSTRAINT [PK_Mailbox] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
INSERT INTO mailbox (ID, mailboxid, connection, emailid) Values (0001, 'M0001', 1, 9999);
INSERT INTO mailbox (ID, mailboxid, connection, emailid) Values (0002, 'M0001', 2, 9999);
INSERT INTO mailbox (ID, mailboxid, connection, emailid) Values (0003, 'M0002', 1, 9998);
INSERT INTO mailbox (ID, mailboxid, connection, emailid) Values (0004, 'M0002', 1, 9998);
INSERT INTO mailbox (ID, mailboxid, connection, emailid) Values (0005, 'M0002', 2, 9997);
INSERT INTO mailbox (ID, mailboxid, connection, emailid) Values (0006, 'M0003', 1, 9996);
select m1.Id, m2.id
from Mailbox m1, Mailbox m2
Where m1.id <> m2.id
AND M1.mailboxid = m2.mailboxid
and m1.emailid = m2.emailid
and m1.connection <> m2.connection
and m1.id < m2.id
应该给你:
Id id
1 2
您可以修剪的邮箱ID如果有必要,并添加空检查,如果这也是一个问题。
根据你的问题,我不明白你为什么要0003-0004返回。 – TDP
糟糕...复制/粘贴错误。 0004的连接应该是2.我会编辑。谢谢你的收获。 –