0300valid.mql 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. -- 查询指定 DB 下的 表
  2. -- /DB/table 与 class 命名发生冲突时,class 优先级高于 /DB/table
  3. select * from /msqldb/sqlite_master
  4. /**
  5. output()
  6. **/
  7. ;
  8. select * from /msqldb/T__matrix__test___422YX2FPSXSLVDA9
  9. where day between '2026-01-01' and '2026-10-10'
  10. /**
  11. output()
  12. **/
  13. ;
  14. -- 全表映射,
  15. -- 查询时自动赋值默认类属性:
  16. -- class: 类名/mdb/dba1,
  17. -- id: 组合映射表主键为字符串,
  18. -- name: 与id相同,
  19. -- day: 当前日期,
  20. -- vtime: 当前时间
  21. -- 实际类中没有数据
  22. -- rdb 输出为二维数组,兼容 promdb 等已有 bucket 类型
  23. -- rdb 数据 与 id 一一对应,实际 二维数组中的第一维 有且只有 一个元素
  24. -- 支持 bucket 链式表达式
  25. select id,rdb from /mdb/dba1
  26. /**
  27. output()
  28. **/
  29. ;
  30. -- 条件映射
  31. -- 类中有数据,按指定条件出数
  32. -- xrdb 输出为二维数组,兼容 promdb 等已有 bucket 类型,输出字段顺序与 bucket 定义的字段顺序一致
  33. -- xrdb 数据 与 id 为多对一关系,默认输出第一条记录,需要在 bucket 定义时明确数据唯一排序,否则数据输出可能不稳定
  34. -- 支持 bucket 链式表达式
  35. select * from /mdb/dba2
  36. /**
  37. output()
  38. **/
  39. ;
  40. -- 条件映射
  41. -- 类中有数据,按指定条件出数
  42. -- rdb 输出为二维数组,兼容 promdb 等已有 bucket 类型
  43. -- 支持 bucket 链式表达式
  44. select id,xvarchar,xrdb.find(整数>1) from /mdb/dba2
  45. /**
  46. output()
  47. **/
  48. ;
  49. -- 条件映射
  50. -- 类中有数据,按指定条件出数
  51. -- rdb 输出为二维数组,兼容 promdb 等已有 bucket 类型
  52. -- 支持 bucket 链式表达式
  53. select id,xvarchar,xrdb.find(整数>1).groupby("文本").count() from /mdb/dba2
  54. /**
  55. output()
  56. **/
  57. ;
  58. -- 条件映射
  59. -- 类中有数据,按指定条件出数
  60. -- rdb 输出为二维数组,兼容 promdb 等已有 bucket 类型
  61. -- 支持 bucket 链式表达式
  62. -- 支持 assert(AEXP)
  63. -- select id,xvarchar,xrdb.find(整数>1).groupby("文本").count() from /mdb/dba2 where xrdb.avg("浮点").groupby("字符串").assert(avg>0)
  64. /**
  65. output()
  66. **/
  67. ;
  68. -- 条件映射
  69. -- 类中有数据,按指定条件出数
  70. -- TODO 重组 rdb 指定字段,输出平表
  71. -- TODO 允许 bucket 与普通类操作方式一致
  72. -- TODO assert(AEXP) 可转换为 id in bucketfield.exps(...).find(AEXP).ids(),
  73. -- TODO 相同的链式表达式 bucketfield.exps(...) 可以复用中间结果
  74. -- select id, rdb.字符串, rdb.整数.mod(10) from /mdb/dba2 where rdb.整数 > 0
  75. /**
  76. output()
  77. **/
  78. ;