如何扩展Javascript中SQL WHERE子句添加字符串开头匹配筛选条件
解决方案
你需要将CONDITIONS字段的WHERE子句追加前缀匹配规则即可,你猜想的StartsWith不是标准SQL通用语法,兼容性较差,推荐使用所有主流数据库都支持的LIKE通配符写法:
REPORTS: [{ NAME: 'MYREPORTNAME', CONDITIONS: 'WHERE Cost > 0 AND ProductName LIKE \'XYZ%\'', FIELDS: { 'ProductSKU' : 'STRING', 'ProductName' : 'STRING', 'Cost' : 'FLOAT' } }]
说明
LIKE 'XYZ%'语法中%是SQL通配符,代表匹配任意长度的任意字符,组合起来就是匹配ProductName字段值以XYZ开头的所有记录- 如果你使用的数据库明确支持
StartsWith类函数(比如PostgreSQL 11+支持starts_with(ProductName, 'XYZ')),也可以替换成对应函数写法,不过LIKE写法兼容性最高 - 拼接后实际执行的SQL片段会自动组合为合法格式:
SELECT ProductSKU,ProductName,Cost FROM MYREPORTNAME WHERE Cost > 0 AND ProductName LIKE 'XYZ%' DURING [默认日期范围]
内容的提问来源于stack exchange,提问作者ljvincent
相关产品推荐
相关产品推荐

