问题解决了,用正则判断.
首先,这个表达式是Select子句,则它只会是求值表达式,不会是赋值表达式.
若该语句以Select开头,则为Select子句
若该语句以Where开头,则为Where子句
若该语句不包含=,>,<,>=,<=,<>,!=,LIKE,IN,Exists运算符,则为Select子句
若该语句包含上符运算符,则取出运算符首次出现的位置,如果是以=,>,>=,<=,<>,!=,LIKE,IN,则必须是在Case子句中,而且必须是搜索Case格式,而能是简单Case格式.
如只能case when a=b then ,case when exists(....)
否则为Where子句.不考虑语法错误.