我对变压器有一个约束:
Trim(CollectFrom.collect_from,"-","A")<=TheDate
这就是collect_from的样子:
'2017-02-27'
以下是TheDate的样子:
'20170227'
我不确定这个Trim()函数是如何工作的。我的第一个猜测是它提供的格式与“TheDate&#39;但我不明白&#34; A&#34;论点。有人可以解释一下吗?
答案 0 :(得分:3)
TRIM()的手册页说不应该有用。
当我尝试运行您显示的内容时,我会收到错误:
e
手册说您需要df.sort <- df[order(df[,"x"]), , drop = FALSE]
:
SQL[2405]: select trim('2017-02-01', '-', 'A') from dual;
SQL -674: Routine (trim) can not be resolved.
SQLSTATE: IX000 at /dev/stdin:1
SQL[2406]: select trim('2017-02-01', '-') from dual;
SQL -674: Routine (trim) can not be resolved.
SQLSTATE: IX000 at /dev/stdin:2
(使用的SQL命令解释器是我的SQLCMD。)
有人可能已经定义了一个带有三个参数的TRIM函数 - 这是从这里无法检测到的。您必须查看数据库的系统目录才能找到它。
OTOH,似乎也不允许,
TRIM({BOTH|LEADING|TRAILING} [char] FROM source)
答案 1 :(得分:2)
Informix 11.50内置了trim()
函数:https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.sqls.doc/ids_sqs_1556.htm但它在您的问题中看起来与trim()
略有不同,所以我认为您使用某些用户的trim()
函数构建
通常trim()
只关注字符串开头或结尾处的字符,但在您的示例trim()
中必须删除位于字符串中间的-
字符。我猜最后一个参数A
告诉trim()
从源字符串中删除所有这些字符。
要找出trim()
函数真正做什么,你必须找到它的来源。您可以使用一些GUI数据库工具(如SQirreL SQL Client(它使用JDBC)),使用dbschema
Informix实用程序或使用ODBC / JDBC的Python / Jython程序执行此操作:https://code.activestate.com/recipes/576621-dump-informix-schema-to-text < / p>
告诉我们您使用的是什么版本的Informix会很有帮助。
答案 2 :(得分:0)
修剪(CollectFrom.collect_from, “ - ”, “A”)
此处 A 表示从输入字符串CollectFrom.collect_from 删除所有“ - ”的出现次数。因此你得到'20170227'。这是一份文件,它将提供有关修剪功能的更多信息。