PostgreSQL组合复杂查询字符串
我将PostgreSql与VB.NET/ODBC一起使用,必须构造一个有点复杂的查询字符串。 这是简化版: 从mytable中选择dtbl_id、idx、名称、MEA、代码、年份 如果名称像“尼莫%”请尝试: 细节 错误-或优先级较低。因此,您的第一个WHERE子句如下所示:PostgreSQL组合复杂查询字符串,postgresql,Postgresql,我将PostgreSql与VB.NET/ODBC一起使用,必须构造一个有点复杂的查询字符串。 这是简化版: 从mytable中选择dtbl_id、idx、名称、MEA、代码、年份 如果名称像“尼莫%”请尝试: 细节 错误-或优先级较低。因此,您的第一个WHERE子句如下所示: WHERE (name ILIKE '%nemo' AND dtbl_id BETWEEN 1 AND 9999) OR (dtbl_id BETWEEN 15000 AND 19999) Edmund指出的另一
WHERE (name ILIKE '%nemo' AND dtbl_id BETWEEN 1 AND 9999)
OR (dtbl_id BETWEEN 15000 AND 19999)
Edmund指出的另一个错误是,要获得以nemo开头的名称,您需要使用类似“nemo%”的条件。主要问题是,最好使用类似“nemo%”的条件名称来获得以nemo开头的名称。请注意,%通配符位于末尾。把它放在开头搜索以尼莫结尾的名字
第二个问题是OR运算符的优先级,正如Igor所指出的那样。如他所示,在后两个子句的周围放上括号。对不起,这在简化示例的过程中会变成。好的,我有一个可行的程序,可以选择“从开始”或“内部”,所以这更多的是打字错误,而不是真正的问题。
WHERE (name ILIKE '%nemo' AND dtbl_id BETWEEN 1 AND 9999)
OR (dtbl_id BETWEEN 15000 AND 19999)