SQL - 在多个列中选择不同的

时间:2014-02-24 13:12:50

标签: c# sql ms-access oledb distinct

我在编写SQL代码时难以从访问表中选择8列中的不同联系人。我想只得到不同的结果,没有重复。以下是我的尝试。

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

我的目的是在没有重复的标签上显示。

2 个答案:

答案 0 :(得分: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运算符本身可以消除重复。

我希望这可以帮助你......

答案 1 :(得分: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() + "')";