我想给查询数据新增一列,用随机数生成,数据库中验证了这样写没问题,但是帆软报错是为什么


FineReport 咕咕咕 发布于 2020-3-9 15:39 (编辑于 2020-3-9 15:45)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
黄多鸭SamirLv4见习互助
发布于2020-3-9 16:30

首先,FRDemo 是 SQLite 数据库。

你的 SQL 语句如下, ceiling()、rand()、checksum()、newid() 在 SQLite 中都是不可行的。

SELECT *,
CAST( ceiling( rand(checksum(newid()))*10 ) AS INT) AS RndNum
FROM 地图1


也许你可以找个 SQL Server 或者 MySQL 的数据连接,用以上的语句试试。


当然,一定要在 SQLite 中尝试的话。


rand() 对应 random()

ceiling() 相关链接 : stackoverflow-ceiling sqlite

Formulas
Ceil : cast ( x as int ) + ( x > cast ( x as int ))
Take integer part of x and add 1 if decimal value is greater than 0

Examples
Ceil : 
SELECT (cast ( amount as int ) + ( amount > cast ( amount as int ))) AS amount
FROM SALES WHERE id = 128;


checksum() 和 newid() 我没找到对应的。

最佳回答
0
JackloveLv7高级互助
发布于2020-3-9 15:46
rand 没有这个函数


  • 咕咕咕 咕咕咕(提问者) 帆软公式、sql中都有rand,但是不知道为什么提示没有这个
    2020-03-09 15:51 
最佳回答
0
cd_cwLv6初级互助
发布于2020-3-9 15:51

${RAND()*10}

  • 咕咕咕 咕咕咕(提问者) 为什么要加上${}?这个不是参数时要用的吗?
    2020-03-09 15:52 
  • cd_cw cd_cw 回复 咕咕咕(提问者) 也可以用帆软的公式
    2020-03-09 15:53 
  • 咕咕咕 咕咕咕(提问者) 回复 cd_cw 但是这样把他变成公式,newid()就没法用了,这样每行生成的单独一列的数都是一样的了
    2020-03-09 16:01 
  • cd_cw cd_cw 回复 咕咕咕(提问者) 在单元格中生成随机数不行么
    2020-03-09 16:11 
  • 咕咕咕 咕咕咕(提问者) 回复 cd_cw 不行,想给查询出来的结果集新增一列,随机数范围是1-12作为月份
    2020-03-09 16:13 
最佳回答
0
18393815135Lv5初级互助
发布于2020-3-9 16:07

你用这个试试看:random()

  • 咕咕咕 咕咕咕(提问者) 直接使用random()可以,但是用random(0,12)+1或者random(13)就会报错
    2020-03-09 16:11 
  • 5关注人数
  • 906浏览人数
  • 最后回答于:2020-3-9 16:30
    请选择关闭问题的原因
    确定 取消
    返回顶部