2014-02-24 55 views
0

我無法編寫SQL代碼以從訪問表中選擇跨8列的不同聯繫人。我只想得到不同的結果,沒有重複。以下是我嘗試過的。SQL - 在多列中選擇截然不同

cmd.CommandText = "select distinct c1, c2, c3, c4, c5, c6, c7, c8 
        from table 
        where state IN (" + paramClause.ToString() + ")"; 

我的目的是在一個沒有重複的標籤上顯示。

+1

你必須給我們多一點繼續。數據,結構等的例子,你期望得到的結果是 – mp3ferret

+0

請編輯你的問題,以更清楚地表達你想要的東西。你寫的查詢應該從表中返回不同的*行*。你真的想要一列列出列[c1]到[c8]中出現的所有不同*值*嗎? –

+0

嗯,好的,你想在標籤上顯示「this」,但是它仍然不清楚「this」是什麼。請向我們展示一些示例數據以及最終結果應該如何的示例。 –

回答

6

如果我已經正確理解,您有一個或多個列(從c1到c8)的聯繫人。

如果是這樣,嘗試重寫你的SQL語句如下所示:

SELECT C1 
FROM TABLE 
WHERE STATE IN (...) 
UNION 
SELECT C2 
FROM TABLE 
WHERE STATE IN (...) 
... 
UNION 
SELECT C8 
FROM TABLE 
WHERE STATE IN (...) 

UNION運算符可以自行消除重複。

我希望這有助於你....

0

您有:

cmd.CommandText = "select distinct c1, c2, c3, c4, c5, c6, c7, c8 
        from table 
        where state IN (" + paramClause.ToString() + ")"; 

但是你需要用字符串單引號。我認爲問題出在你的WHERE子句中。試試這樣做:

cmd.CommandText = "select distinct c1, c2, c3, c4, c5, c6, c7, c8 
        from table 
        where state IN ('" + paramClause.ToString() + "')";