朋友们,我有来自客户的表,我想在其中获取其三个列CustomerType,CustomerReg,CustomerID的不同值。
而不是为不同的
做三个单独的查询喜欢从Customer中选择不同的CustomerType ..然后为CustomerReg ..可以在一个查询中实现...
原因是我会将每列不同的值附加到特定的下拉列表框中。
答案 0 :(得分:2)
您可以使用grouping sets
执行此操作。如果您希望将值分为三个单独的列:
select CustomerType, CustomerReg, CustomerId
from Customer
group by grouping sets ((CustomerType), (CustomerReg), (CustomerId))
答案 1 :(得分:1)
如果我理解正确,您希望在列中的一列中显示所有客户类型,customerreg和customerIds的不同列表?
试试这个......
select distinct CustomerType + ' : ' + CustomerReg + ' (' + CustomerId + ')' as Name
from Customer
这将返回一个字符串,如'External:23423412(2344)' 您应该通过有意义的事情来订购它。 尝试添加
order by Name
尽管如果客户只能在客户表中出现一次,您就不需要DISTINCT。
再次阅读您的问题,看起来您想在一个查询中返回每列的不同列表,而不是一个独特的组合?然后上面提到的分组集可能会让你最接近,虽然根据你的数据结构,如果你有很多客户,性能可能会成为一个问题。
您在UI中使用的是哪种语言? 如果它是.Net,你可以使用3个单独的查询打开一个datareader,然后使用datareader.nextresult
这里有一个解释,
这里有一个例子,
http://msdn.microsoft.com/en-us/library/haa3afyz(v=vs.110).aspx
希望有所帮助
答案 2 :(得分:0)
你甚至可以这样做:
select distinct CustomerType, CustomerReg, CustomerId
from Customer