首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于GetAsNumber的ExecuteSQL文件管理系统

基于GetAsNumber的ExecuteSQL文件管理系统
EN

Stack Overflow用户
提问于 2022-08-25 10:24:47
回答 1查看 89关注 0票数 0

我有一个这样的领域的计算:

代码语言:javascript
复制
GetAsNumber(
    ExecuteSQL ( 
        "SELECT nb FROM something WHERE value = ?" ;
        "" ;
        "" ;
        amount
    )
)

只要返回的数字是个位数,一切都能正常工作。但是当SQL语句返回例如" 12“时,我从GetAsNumber函数中得到的数字突然变成1212而不是12。

据我所知,这在某种程度上与返回SQL结果的格式有关,在文档中是这样说的("FileMaker Pro以Unicode/SQL格式返回日期、时间和数字数据,而不是在操作系统或文件的区域设置中。“)

但我想一定有办法把结果格式化,这样就可以转换成一个数字了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-25 14:07:55

答案来自my .hor257 k对我的问题的评论:

ExecuteSQL返回一个数组(我不知道,它在文档中也没有指定,其中写着:“数据类型返回: text")。所以我的问题与两位数无关(我想我应该运行更多的测试),而是与返回多个结果的sql语句有关。

由于在我的例子中,多个结果总是相同的,所以我可以这样修改我的计算:

代码语言:javascript
复制
GetValue(
    ExecuteSQL ( 
        "SELECT nb FROM something WHERE value = ?" ;
        "" ;
        "" ;
        amount
    ) ;
    1
)

以这种方式,我只检索第一个结果。

正如michael.hor257k在他的评论中所建议的那样,我也可以将SQL结果限制为一行。

代码语言:javascript
复制
ExecuteSQL ( 
    "SELECT nb FROM something WHERE value = ? FETCH FIRST ROW ONLY" ;
    "" ;
    "" ;
    amount
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73485888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档