我在编写SQL代码时难以从访问表中选择8列中的不同联系人。我想只得到不同的结果,没有重复。以下是我的尝试。
cmd.CommandText = "select distinct c1, c2, c3, c4, c5, c6, c7, c8
from table
where state IN (" + paramClause.ToString() + ")";
我的目的是在没有重复的标签上显示。
答案 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() + "')";