【问题标题】:SQL query to append data to the existing value of a cell将数据附加到单元格的现有值的 SQL 查询
【发布时间】:2013-03-11 07:22:53
【问题描述】:

我需要一个将数据附加到单元格的现有值的查询。 例如: 单元格当前值:“2013-03-15” 更新后的值:“2013-03-15,2013-03-25”

有可能吗? 注意:我不想一次更新整个列。只有单元格。

【问题讨论】:

  • 可以给样张记录吗?
  • 该列的数据类型是什么。你为什么要这样做?如果您尝试为该列添加多个值,请不要这样做。最好添加一个新列或一个新表。
  • @user2063626 我不能使用它,因为我不想计算日期我想附加已经存在的数据。其中也包括“,”(逗号)。
  • @MahmoudGamal ,它是 varchar。我在此列中添加学生在特定月份缺勤的日期。
  • @Arbaaz - 在这种情况下,不要那样做,这真的很糟糕。添加一个新的故事StudentAbsenceStudentId 到学生表的外键,然后是数据类型为dateAbsenceDate 或日期时间而不是varchar。在此列AbsenceDate 中为每个studentid 添加多行作为新行,这将使您以后的工作更加轻松,您的表格将是normailezed

标签: c# asp.net sql sql-server sql-server-2008


【解决方案1】:

试试这样的:

UPDATE tblMyTable
    SET MyCell = MyCell + ',' + 'My Other Value'

或者

UPDATE tblMyTable
    SET MyCell = MyCell + ',' + @MyParameter

请记住,MyCell 的类型需要基于文本,例如:nvarchar(256) 等...

【讨论】:

    【解决方案2】:

    如果假设您使用的是 DateTime 数据类型,那么您必须:

    创建另一个表,例如RequestDateTime:

    Create table REQUEST_DATE_TIME(
      REQUEST_ID VARCHAR(10), -- or whatever PK your main table use
      Request_date DATETIME
    )
    

    然后添加两个表之间的关系。

    但是当你使用 varchar(n) 数据类型时,你可以做一个简单的:

    Update table set DateTimeCell = DateTimeCell + CAST(@VALUE AS VARCHAR)
    

    如果你说出你想要达到的目标,也许你会得到更好的答案。

    【讨论】:

      【解决方案3】:

      如果您使用的是日期,这是不可能的。使用文本数据类型。

      首先,从相应单元格的数据库中读取数据,然后通过字符串连接附加您的数据。

      接下来,更新单元格

      while (myReader.Read())
      { 
      String d1=myReader["dat"].ToString());
      }
      String d2=d1+","+your_variable or data
      

      更新吧

      【讨论】:

        【解决方案4】:

        不要那样做。创建另一列,例如 newDate 并将您的新值存储在那里。当您使用日期时,您必须像日期一样存储它们,而不是像文本一样。或者,您可以将日期存储在单个列中,并在您引用的学生表中使用某种外键。

        【讨论】:

          猜你喜欢
          • 2011-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-26
          • 1970-01-01
          相关资源
          最近更新 更多