0300valid.mql 3.5 KB

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