【发布时间】:2017-05-22 17:09:20
【问题描述】:
这是用于 Oracle DB SQL (pl/sql)
我有一个三列数据表(为了争论)。 我需要删除返回的行,其中columnA 和columnB 与表中的另一条记录匹配并且columnC 等于'james'。但是如果 columnC 等于 'james' 并且 columnA,columnB 不匹配结果集中的任何其他行,则保留它。
ColumnA ColumnB ColumnC
_______________________
45 blue John <-Keep
45 blue James <-Remove
32 Red John <-Keep
32 Red James <-Remove
12 Yellow James <-Keep
结果集将是:
ColumnA ColumnB ColumnC
_______________________
45 blue John
32 Red John
12 Yellow James
显然真实数据更复杂,列也更多。我的背景是等式的 C# 方面,而不是 Oracle DB 方面。我已经尝试了一些临时表,但我无法得到任何接近工作的东西,因为我需要一些东西说“我返回了更多的一行,其中一个是詹姆斯记录”。感谢您的帮助。
【问题讨论】:
-
如果多行有45、蓝色等名字怎么办?
-
@GurwinderSingh 对于这个例子,我只想删除 James 记录。