我正在尝试根据SQL API查询WHERE条件中的“数量”范围过滤数据。金额值可以是不带双引号的整数值或带双引号的十进制值。基本上我需要过滤两个数量范围值之间的所有记录
下面是我的示例数据。
[
{
"customer": "001",
"dt": {
"Transaction": [
{
"Amount": "999.00",
"timestamp": "2019-01-28T15:44:49.215"
}
]
}
},
{
"customer": "002",
"dt": {
"Transaction": [
{
"Amount": "9999.00",
"timestamp": "2019-01-28T15:44:49.215"
}
]
}
},
{
"customer": "003",
"dt": {
"Transaction": [
{
"Amount": 9,
"timestamp": "2019-01-28T15:44:49.215"
}
]
}
}
]
下面是我要运行的查询,以查找数量在99到10000之间的记录
SELECT c.dt[0].Transaction[0].Amount FROM c where c.dt[0].Transaction[0].Amount>"99"
and c.dt[0].Transaction[0].Amount<"10000"
但是它不返回任何记录
请帮助我查询一下。我需要过滤数量在99到10000之间的记录
答案 0 :(得分:0)
请使用UDF。
udf:
function test(str){
if(typeof(str)=='string'){
return Number(str)
}else{
return str
}
}
sql:
SELECT c.dt.Transaction[0].Amount FROM c where udf.test(c.dt.Transaction[0].Amount) >99
and udf.test(c.dt.Transaction[0].Amount)<10000
输出: