[X] I searched the issues and found no similar issues.
What Happened
SQL code that we have in or system contains a case expression in the where clause. The code runs fine in the system, but SQLFluff is not able to parse this code.
Expected Behaviour
I would expect the following code to run without error:
import sqlfluff
query = f"""SELECT
*
FROM MyDatabase.MySchema.MyTable
WHERE CASE WHEN 1 = 1 THEN 'Y' ELSE 'N' END <> 'Y'
"""
sqlfluff.parse(query, dialect='tsql')
The code does run without error if you update it to include parentheses around the case expression likes so:
import sqlfluff
query = f"""SELECT
*
FROM MyDatabase.MySchema.MyTable
WHERE (CASE WHEN 1 = 1 THEN 'Y' ELSE 'N' END) <> 'Y'
"""
sqlfluff.parse(query, dialect='tsql')
Observed Behaviour
Instead of the code running without error, I get the following error:
sqlfluff.api.simple.APIParsingError: Found 1 issues while parsing string.
Line 4, Position 45: Found unparsable section: "<> 'Y'"
How to reproduce
Run the following code to get this error:
import sqlfluff
query = f"""SELECT
*
FROM MyDatabase.MySchema.MyTable
WHERE CASE WHEN 1 = 1 THEN 'Y' ELSE 'N' END <> 'Y'
"""
sqlfluff.parse(query, dialect='tsql')
Dialect
tsql
Version
sqlfluff 2.3.5
python 3.12.1
Configuration
(no configuration)
Are you willing to work on and submit a PR to address the issue?
Search before asking
What Happened
SQL code that we have in or system contains a case expression in the where clause. The code runs fine in the system, but SQLFluff is not able to parse this code.
Expected Behaviour
I would expect the following code to run without error:
The code does run without error if you update it to include parentheses around the case expression likes so:
Observed Behaviour
Instead of the code running without error, I get the following error:
How to reproduce
Run the following code to get this error:
Dialect
tsql
Version
sqlfluff 2.3.5 python 3.12.1
Configuration
(no configuration)
Are you willing to work on and submit a PR to address the issue?
Code of Conduct