2012-02-25 135 views
0
SELECT Col1, Col2, Col3, Col4 
FROM DataSource 
WHERE Criteria = FK 

- 所有列都可以。选择不同的列,SELECT DISTINCT在两列中返回相同的值

SELECT DISTINCT Col1, Col2, Col3, Col4 
FROM DataSource 
WHERE Criteria = FK 

- 列3 & 4是一样的! - 数据是DIFFERNET

什么会导致这种情况?

这是与DISTINCT相同的查询,但Col3中的值在Col4中相同。

我检查了各种事物,备份并导出数据,重新创建表。 这是一个表直接查询(不是视图或其他任何东西)。 没有触发器。

我不能放置它...

任何想法/想法的欢迎。

选择:

OGID MID PN  OPN 
35  78 610131 204180001A 
35  78 610132 204215001A 
35  78 610133 204183001A 
35  78 610134 204273001A 
35  78 610135 204275001A 
35  78 610137 204262001A 
35  78 610152 204264001A 
35  78 610203 204332001A 
35  78 610266 204243001A 
35  78 610285 204080001A 
35  78 610286 204219001A 
35  42 610289 130211 

SELECT DISTINCT:

OGID MID PN  OPN 
35  78 610131 610131 
35  78 610132 610132 
35  78 610133 610133 
35  78 610134 610134 
35  78 610135 610135 
35  78 610137 610137 
35  78 610152 610152 
35  78 610203 610203 
35  78 610266 610266 
35  78 610285 610285 
35  78 610286 610286 
35  42 610289 610289 

为什么?

+0

所以如果你有'1,1,2,3'和'2,3,2,3'和'1,1,2,2 '和'1,6,2,3'你想要什么结果?我想你可能会对“DISTINCT”的作用感到困惑 - 它适用于整个集合,而不是单个列。 – 2012-02-25 21:48:14

+0

完美的意识到这一点,谢谢。 – user1233061 2012-02-25 21:55:36

+0

然后请描述您的数据集,以及您为什么期望将col3和col4与col1和col2区别对待。最重要的是,显示一些示例数据以及您希望查询返回的内容。 – 2012-02-25 21:57:12

回答

1

你期望什么?您的查询

SELECT DISTINCT Col1, Col2, Col3, Col4 
FROM DataSource 
WHERE Criteria = FK 

在所有四个选定列中选择不同的值组合。在一些列中可能有重复的值。以下“结果”将被认为是不同的:

Col1 Col2 Col3 Col4 
A A A 1 
A A A 2 
+0

列3的所有值都以列4值结尾。第4列的数值没有显示为第4列中的数据:与第3列相同(也许我在这篇文章中对此并不清楚)。我完全希望我只能从第3列和第4列中获得不同的值,作为独立的列,而不是一个复制到下一个列。我已经修好了,将子查询拉进临时表中。我知道这是愚蠢的 - 基本...添加一个“WHERE Col3 <> Col4”产生一个空白的结果集。 – user1233061 2012-02-25 21:50:08

+0

@ user1233061:你是什么意思,“第4列的数据没有显示为第4列中的数据”?查询结果是否显示不在原始表格中的值ic Col4? – Mithrandir 2012-02-25 21:56:46

+0

正确 - >不是原始表中Col4中的值,COL3中的值。 – user1233061 2012-02-25 21:59:21

相关问题