Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从DB2AS400中的列中获取最后2个字符_Db2_Ibm Midrange - Fatal编程技术网

从DB2AS400中的列中获取最后2个字符

从DB2AS400中的列中获取最后2个字符,db2,ibm-midrange,Db2,Ibm Midrange,我有一个简单的select查询,它位于openquery中 SELECT MyColumn, RIGHT(MyColumn,2) FROM MyTable 然而,这会产生错误 原因……:在令牌2处检测到语法错误。代币,2 不是有效的令牌。有效令牌的部分列表为) 万一有人有这个问题 RIGHT(MyColumn,2) gives token error RIGHT(MyColumn, 2) is correct 实际查询的结果 SELECT * FROM OPENQUERY

我有一个简单的select查询,它位于openquery中

SELECT 
    MyColumn,
    RIGHT(MyColumn,2)
FROM MyTable
然而,这会产生错误

原因……:在令牌2处检测到语法错误。代币,2 不是有效的令牌。有效令牌的部分列表为)

万一有人有这个问题

RIGHT(MyColumn,2) gives token error

RIGHT(MyColumn, 2) is correct
实际查询的结果

SELECT * FROM OPENQUERY(linkServer, 'SELECT RIGHT(MyColumn, 2) FROM MyTable')

在my 7.3上有以下功能:
从(值'1234')MyTable(MyColumn)中选择MyColumn,RIGHT(MyColumn,2)您的IBM i版本是什么?我发现了问题,它与逗号和2之间的空格有关。。。。在我添加了这个空间之后,它工作了。不知道为什么,可能是因为我正在使用open query在AS400上运行此查询。最好在逗号后面加一个空格,用作参数分隔符,因为在不同的地区或设置中,逗号也可以用作小数点。这是语法错误最可能的原因。您的代码不仅在空间上更具可移植性,而且可以说更具可读性。算了吧,现在已经远远超过了我们必须节省每个字节的时代了。我们能负担得起分离器后的空间。(我们现在甚至可以承受4位数的年数了!你相信吗?!)我不认为这是DB2的问题,因为这种语法在嵌入式SQL和SQuirreL SQL客户机中工作。但我注意到,在DBeaver SQL客户机中偶尔会出现这种行为。但在这种情况下不是这样。