从 SQLITE 中的两列中选择不同的值
Posted
技术标签:
【中文标题】从 SQLITE 中的两列中选择不同的值【英文标题】:Select distinct values from two columns in SQLITE 【发布时间】:2020-01-03 15:46:41 【问题描述】:我有两列
tab1
col1 col2
a 1
a 2
b 3
b 6
c 4
d 5
我需要两列中的不同值,例如:
result
col1 col2
a 1
b 3
c 4
d 5
select distinct col1, col2 from tab1 #is not giving such results.
在 sqlite 中可以吗?
【问题讨论】:
你如何确定哪个值是正确的? @Fildor 没关系。我只需要独特的配对。 你刚才说的是独特的配对。在您的示例中,a-2、b-6 去了哪里,为什么不显示在手动制作的结果中(它们是唯一的)? " 如果简单的 SELECT 是 SELECT DISTINCT,则在返回之前从结果行集中删除重复行。为了检测重复行,考虑两个 NULL 值相等。通常的规则适用于选择排序顺序来比较文本值。" 这不适用于此处,因为您没有重复的行。 (来源:sqlite.org/lang_select.html#distinct) 【参考方案1】:从您发布的示例数据中,我看到最简单的方法是 group by col1
并获得 col2
的最小值:
select col1, min(col2)
from tab1
group by col1
【讨论】:
【参考方案2】:获得您的预期结果(不是不同的行,而是其他东西)。 您正式想要的内容尚不清楚,下面将为每列 1 选择第 2 列的最小值。
select col1, min (col2) from tab1 group by col1
如果你想选择第一个,让你知道,值的顺序在 SQL 中没有定义,除非例如您添加数字 id 并按其排序。
注意:在我之前回答过的人,所以请将他的回答标记为已接受,以防您认为我们的回答相同。
【讨论】:
以上是关于从 SQLITE 中的两列中选择不同的值的主要内容,如果未能解决你的问题,请参考以下文章