C# 如何在sql中不使用group by而使用带条件计数?

C# 如何在sql中不使用group by而使用带条件计数?,c#,sql,sql-server-2008,C#,Sql,Sql Server 2008,输入集: 1000100110031000 相应的输出: select bcd from bcd22 where bcd=@bcd1 group by bcd having count(bcd)%2=0 cmd22.Parameters.Add("@bcd1", SqlDbType.NChar, 20, "bcd").Value = textBox1.Text; 然而,我希望输出为 1001 1003 1000 1000 没有分组在我看来,您得到的输出和您想要的输出是一样的,除了

输入集:
1000100110031000


相应的输出:

select   bcd from bcd22 where bcd=@bcd1 group by bcd  having count(bcd)%2=0

cmd22.Parameters.Add("@bcd1", SqlDbType.NChar, 20, "bcd").Value = textBox1.Text;

然而,我希望输出为

1001
1003
1000
1000

没有分组

在我看来,您得到的输出和您想要的输出是一样的,除了顺序之外,并且对于您发布的查询没有保证顺序


如果您想要一个特定的订单,您可以通过添加一个
orderby
子句来实现,但是如果没有更多的信息,就很难提供更多具体的帮助。例如,看起来您希望输出与输入的顺序相同,但我不太清楚这些输入值来自何处。我所看到的只是查询中的一个参数。

输入是从texbox1.text获得的,并且和数据库中的值相匹配。您用这个参数传递多个输入吗?这对我来说似乎不合适;也许我遗漏了什么。我有一个数据库,其中存储了所有bcd,比如10001001等等。我有一个表格,其中有一个网格视图和一个文本框,每当我在文本框中输入bcd时,它与数据库匹配,并显示在网格视图的第一行的网格视图上。稍后,当我将第二个输入作为1001时,它将显示在网格视图的第二行中。稍后,当我将1000作为输入而不是显示第三行中的1000时,第一个1000将从第一行重新排列到第二行。我希望第一个1000在第二次输入1000后不应更改行。这没有意义。标题与问题的关系如何?为什么没有分组?请更具体地说明你想要实现什么?根据你对我下面答案的回答,这似乎是你的c#代码的问题,而不是你的SQL。您能展示一下如何将这些查询结果添加到gridview中吗?插入更新后的网格视图上面的链接显示im在网格上的显示方式
1000
1001
1003
1000