我想獲得唯一的值表格表。但所有的價值觀都應該是獨一無二如何在SQL Server中使用不同列表的所有列
所以建議如何得到。
SELECT DISTINCT ProCode
, id,SubCat
,SmlImgPath
,RupPrice
,ActualPrice
,ProName
FROM product
WHERE ProCode='FZ10003-EBA';
我想獲得唯一的值表格表。但所有的價值觀都應該是獨一無二如何在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