对于Interbase,我有一个有趣的问题。我有一个记录集,其中有一个数据输入字段和每个记录的时间戳。我希望能够从记录中复制时间戳,以便在一天结束时,最终字段将沿着以下行显示:
TIMESTAMP <Carriage return> <carriage return> Original data in field因此,显示该字段时的最终外观为:
time of entry
data that was entered遗憾的是,这必须在数据库级别完成,因为我没有访问前端软件的权限。
我能想到的唯一解决方案是执行select,使用自定义软件执行合并,然后逐行生成适当的SQL来更新记录。由于每天有数百条记录,这是相当慢的,因此基于SQL的解决方案将是理想的。
在过去,我成功地将固定数据添加到字符串的末尾,使用||与UPDATE指令( data ||对所有记录都相同的额外信息“)连接,但在以下格式中工作时遇到了困难:
result of search||original data 任何帮助都将不胜感激。
发布于 2009-03-12 00:59:59
UPDATE FOO_TABLE
SET DATA_ENTRY_FIELD = DATA_ENTRY_FIELD || TIMESTAMP_FIELD
WHERE ...;这应该可以工作(前提是DATA_ENTRY_FIELD有连接的空间)。如果它不工作,请更具体地说明您遇到了什么问题。
发布于 2009-03-15 18:21:32
Craig的答案应该是有效的,尽管如果你想要回车符,你也需要插入这些:
UPDATE foo_table
SET data_entry_field = timestamp || '\n\n' || data_entry_field
WHERE ...(假设Interbase接受\n作为回车--这实际上应该是\r,甚至是\r\n,但\n是相当标准的。)
MySQL不能识别||连接运算符,因此您必须使用CONCAT()函数。Interbase可能也是一样的。
https://stackoverflow.com/questions/636701
复制相似问题