如何在SQL Server中使用不同列表的所有列
我想获得唯一的值表格表。但所有的价值观都应该是独一无二如何在SQL Server中使用不同列表的所有列
所以建议如何得到。
SELECT DISTINCT ProCode
, id,SubCat
,SmlImgPath
,RupPrice
,ActualPrice
,ProName
FROM product
WHERE ProCode='FZ10003-EBA';
DISTINCT指的是所有选定的列,所以答案是你的SELECT已经做到了。
编辑:
看来你的问题是不相关的DISTINCT。你想要的是当你的搜索返回多行时得到一行。
如果你不关心你在哪一行,那么你可以使用:
MS SQL Server语法:
SELECT TOP 1 ProCode
, id,SubCat
,SmlImgPath
,RupPrice
,ActualPrice
,ProName
FROM product
WHERE ProCode='FZ10003-EBA';
MYSQL语法:
SELECT ProCode
, id,SubCat
,SmlImgPath
,RupPrice
,ActualPrice
,ProName
FROM product
WHERE ProCode='FZ10003-EBA'
LIMIT 1;
甲骨文语法:
SELECT ProCode
, id,SubCat
,SmlImgPath
,RupPrice
,ActualPrice
,ProName
FROM product
WHERE ProCode='FZ10003-EBA'
AND rownum <= 1;
它没有显示单个值 – 2014-09-02 11:08:00
请从表 – Wanderer 2014-09-02 11:08:20
FZ10003-EBA \t〜/产品/名人/康嘉娜·拉洛/ FZ10003-EBA-sm.jpg FZ10003提供一些行-EBA \t〜/产品/ salwar沙丽克米兹/设计师品牌/ FZ10003-EBA-sm.jpg FZ10003-EBA \t〜/产品/ salwar沙丽克米兹/晚会款式/ FZ10003-EBA-sm.jpg – 2014-09-02 11:08:56
(有一天我也许能够发表评论!)
SQLFiddle to show normal, distinct and returning a single row
SELECT DISTINCT作品不错,但它不工作,你希望它的工作方式。从您在Klas'答案下的评论中发布的数据中可以清楚地看到,当列中某处存在数据差异时,您希望获得单一结果。例如
/Products/CELEBRITY/KANGANA
是
/Products/SALWAR
完全不同,你看起来是在寻找不能与DISTINCT工作,也无法使用GROUP BY工作。基本上,只有两行(或三行,十行或100行)才会成为一行,如果SELECT中ALL SEVEN COLUMNS中的数据是IDENTICAL。
退一步想想它是什么,正是你想要在这里实现的。
你是说你想要一个记录只?这被称为聚合。如果有更多的记录,然后是一个(在你的例子中是三个),你将不得不为每一列决定显示哪个值。
你想在结果行中看到哪个SubCat,SmlImgPath等?最大值?最低?或者字符串'各种'?举个例子:
SELECT
ProCode
, CASE WHEN MIN(id) <> MAX(id) THEN 'various' ELSE MIN(id) END
, MIN(SubCat)
, MAX(SmlImgPath)
, AVG(RupPrice)
, AVG(ActualPrice)
, MAX(ProName)
FROM product
WHERE ProCode='FZ10003-EBA'
GROUP BY ProCode;
'DISTINCT'始终适用于所有**列值** - 不知道你的意思.... – 2014-09-02 11:07:14
我认为,没有人迄今已拥有你在说什么的想法。请显示样本数据和期望的输出。 – 2014-09-02 11:11:15
从下面粘贴的数据看来,您似乎在多个子类别中具有相同的产品代码。你设计的表格设计不好,不符合标准化。 – CaRDiaK 2014-09-02 11:23:50