如何使用逗号分隔符进行 select 语句查询?
How to do a select statement query with comma separator?
我需要做一个简单的查询,Select语句
我想在 Table 中搜索所有值为 "ValueA, ValueB" 的记录。
如果我使用此代码,效果不佳:
String255 valueToFilter;
valueToFilter = 'ValueA, ValueB';
select count (RecId) from MyTable
where MyTable.Field like valueToFilter ;
但没有用,我需要保留所有值 "ValueA" 或 "ValueB" 的记录,如果文件中有这样的值:"ValueA, ValueC" 我也想得到。
我不知道值的数量 (valueToFilter)。
谢谢!
从我的角度来看,完成此操作的最简单方法是拆分过滤器字符串:
String255 valueToFilterA = 'ValueA';
String255 valueToFilterB = 'ValueB';
;
select count (RecId) from MyTable
where MyTable.Field like valueToFilterA
|| MyTable.Field like valueToFilterB;
如果您不知道值的数量,您应该使用 query
对象来动态添加范围:
Query query = new Query();
QueryRun queryRun;
QueryBuildDataSource qbds;
QueryBuildRange queryRange;
container conValues;
;
qbds = query.addDataSource(tableNum(MyTable));
for (i = 1; i <= conlen(conValues); i++)
{
queryRange = qbds.addRange(fieldNum(MyTable, Field));
queryRange.value(SysQuery::valueLike(conPeek(conValues, i)));
}
queryRun = new QueryRun(query);
info(strFmt("Records count %1", SysQuery::countTotal(queryRun)));
我需要做一个简单的查询,Select语句
我想在 Table 中搜索所有值为 "ValueA, ValueB" 的记录。
如果我使用此代码,效果不佳:
String255 valueToFilter;
valueToFilter = 'ValueA, ValueB';
select count (RecId) from MyTable
where MyTable.Field like valueToFilter ;
但没有用,我需要保留所有值 "ValueA" 或 "ValueB" 的记录,如果文件中有这样的值:"ValueA, ValueC" 我也想得到。
我不知道值的数量 (valueToFilter)。
谢谢!
从我的角度来看,完成此操作的最简单方法是拆分过滤器字符串:
String255 valueToFilterA = 'ValueA';
String255 valueToFilterB = 'ValueB';
;
select count (RecId) from MyTable
where MyTable.Field like valueToFilterA
|| MyTable.Field like valueToFilterB;
如果您不知道值的数量,您应该使用 query
对象来动态添加范围:
Query query = new Query();
QueryRun queryRun;
QueryBuildDataSource qbds;
QueryBuildRange queryRange;
container conValues;
;
qbds = query.addDataSource(tableNum(MyTable));
for (i = 1; i <= conlen(conValues); i++)
{
queryRange = qbds.addRange(fieldNum(MyTable, Field));
queryRange.value(SysQuery::valueLike(conPeek(conValues, i)));
}
queryRun = new QueryRun(query);
info(strFmt("Records count %1", SysQuery::countTotal(queryRun)));