我有一个这样的领域的计算:
GetAsNumber(
ExecuteSQL (
"SELECT nb FROM something WHERE value = ?" ;
"" ;
"" ;
amount
)
)只要返回的数字是个位数,一切都能正常工作。但是当SQL语句返回例如" 12“时,我从GetAsNumber函数中得到的数字突然变成1212而不是12。
据我所知,这在某种程度上与返回SQL结果的格式有关,在文档中是这样说的("FileMaker Pro以Unicode/SQL格式返回日期、时间和数字数据,而不是在操作系统或文件的区域设置中。“)
但我想一定有办法把结果格式化,这样就可以转换成一个数字了。
发布于 2022-08-25 14:07:55
答案来自my .hor257 k对我的问题的评论:
ExecuteSQL返回一个数组(我不知道,它在文档中也没有指定,其中写着:“数据类型返回: text")。所以我的问题与两位数无关(我想我应该运行更多的测试),而是与返回多个结果的sql语句有关。
由于在我的例子中,多个结果总是相同的,所以我可以这样修改我的计算:
GetValue(
ExecuteSQL (
"SELECT nb FROM something WHERE value = ?" ;
"" ;
"" ;
amount
) ;
1
)以这种方式,我只检索第一个结果。
正如michael.hor257k在他的评论中所建议的那样,我也可以将SQL结果限制为一行。
ExecuteSQL (
"SELECT nb FROM something WHERE value = ? FETCH FIRST ROW ONLY" ;
"" ;
"" ;
amount
)https://stackoverflow.com/questions/73485888
复制相似问题