【问题标题】:SQL - select distinctSQL - 选择不同的
【发布时间】:2011-09-28 03:03:01
【问题描述】:

我对我的 sql 数据库表中的 2 个字段使用了 select disctinct 语句。这是我的代码。

myCommand = New SqlCommand("SELECT DISTINCT Author FROM tblBook UNION SELECT DISTINCT BookCode FROM tblBook",myConnection)
 myAdapter = New SqlDataAdapter(myCommand)
 myAdapter.Fill(myDataSet, "tblBook")
 cboAuthor.DataSource = myDataSet.Tables(0)
 cboAuthor.DisplayMember = "Author"
 cboAuthor.DisplayValue = "BookCode"

它会产生错误:cannot bind to the new member. Parameter name:value。请帮忙

【问题讨论】:

    标签: sql vb.net select combobox


    【解决方案1】:

    您查询两个不同的事物。

    你要么想要......

    1. 获取每本书的作者。在这种情况下,必须对表进行查询,因此不能选择联合

    2. 您确实需要将结果作为一列,在这种情况下,给该列一个别名并绑定别名

      SELECT DISTINCT Author AS mycolumn FROM tblBook 联盟 从 tblBook 中选择 DISTINCT BookCode 作为 mycolumn

    【讨论】:

      【解决方案2】:

      也许你正在寻找

      SELECT DISTINCT Author, Bookcode FROM tblBook
      

      联合用于合并行而不是列..

      因此,您的查询返回一个单列,其中所有的 autors(不同的)在同一列中,后面是所有 bookcode 的行(也是不同的)。

      【讨论】:

        【解决方案3】:

        UNION 操作不能以这种方式工作。

        您想要一个包含两列的记录集 - Authors 和 BookCodes,因此您将需要类似以下的查询:

         SELECT DISTINCT Author, BookCode FROM tblBook
        

        【讨论】:

          【解决方案4】:

          您在 sql 语句中只选择了一列,作者。 BookCode 不存在,因此它也不会在数据集中。

          将 BookCode 包含在 Sql 语句中,它将被修复

          【讨论】:

          • 不是在联盟吗?我无法在脑海中运行联合,所以我不知道他的 SQL 将如何返回 lol
          • 只要在 sql 中包含 bookcode 就可以了 "SELECT DISTINCT Author, Bookcode FROM tblBook"
          猜你喜欢
          • 2011-02-20
          • 2011-12-20
          • 2014-06-13
          • 2015-12-27
          • 1970-01-01
          • 2015-06-09
          • 1970-01-01
          • 2012-01-19
          • 2021-10-19
          相关资源
          最近更新 更多