我对Interbase有一个有趣的问题。我有一个记录集,其中包括数据输入字段和每个记录的时间戳。我希望能够从记录中复制时间戳,以便在一天结束时最终字段将按以下方式读取:
TIMESTAMP <Carriage return> <carriage return> Original data in field
因此,显示字段时的最终外观是:
time of entry
data that was entered
可悲的是,这必须在数据库级别完成,因为我无法访问前端软件。
我能够提出的唯一解决方案是选择,使用自定义软件执行合并,然后逐行生成适当的SQL来更新记录。由于每天有几百条记录,因此速度相当慢,因此基于SQL的解决方案将是理想的。
过去,我成功地使用||
将固定数据添加到字符串的末尾,以便与UPDATE
指令连接(数据||所有记录的相同信息“)但无法以下列格式进行此项工作:
result of search||original data
非常感谢任何帮助。
答案 0 :(得分:1)
UPDATE FOO_TABLE
SET DATA_ENTRY_FIELD = DATA_ENTRY_FIELD || TIMESTAMP_FIELD
WHERE ...;
这应该可行(如果DATA_ENTRY_FIELD有连接空间)。如果不起作用,请更具体地说明您遇到的问题。
答案 1 :(得分:0)
Craig的答案应该有效,但如果你想要回车,你也需要插入它们:
UPDATE foo_table
SET data_entry_field = timestamp || '\n\n' || data_entry_field
WHERE ...
(假设Interbase接受\n
作为回车 - 在Windows上应该只是\r
甚至\r\n
,但\n
是相当标准的。)
MySQL无法识别||
并置运算符,因此您必须使用CONCAT()
函数。 Interbase可能是一样的。