我有一个数据视图,其中interresting列是length,height,color1和color2,其中color1和color2可以是黄色,红色,蓝色,黑色,白色或绿色中的任何一种.什么是应用过滤器的最佳方法,我获得具有一定长度和高度但只有红色,蓝色和绿色的行?
当可能的颜色增长时,下面的过滤器感觉有点'难看':
"length > 10 AND height > 10 AND (color1 = 'red' OR color1 = 'blue' OR color1 = 'green') AND (color2 = 'red' OR color2 = 'blue' OR color2 = 'green')"
或者这是唯一/最简单的方式?
不幸的是,这是"SQL风格"查询的本质:)
该IN
子句可能使该查询更简单:
"length > 10 AND height > 10 AND color1 IN ('red', 'blue', 'green') AND color2 IN ('red', 'blue', 'green')"