diff --git a/query/src/org/labkey/query/QueryTestCase.jsp b/query/src/org/labkey/query/QueryTestCase.jsp index a1e2ff0500d..684f0569dfd 100644 --- a/query/src/org/labkey/query/QueryTestCase.jsp +++ b/query/src/org/labkey/query/QueryTestCase.jsp @@ -911,8 +911,10 @@ d,seven,twelve,day,month,date,duration,guid assertFalse(rs.getColumn(1).isHidden()); assertEquals("0.00", rs.getColumn(1).getFormat()); } - } + }, + // test operators in THEN expression + new SqlTest("SELECT CASE WHEN 1=1 THEN 'a' || 'b' ELSE 'x' || 'y' END") ); List postgres = List.of( diff --git a/query/src/org/labkey/query/sql/SqlBase.g b/query/src/org/labkey/query/sql/SqlBase.g index 28ad379df35..72c652d9de7 100644 --- a/query/src/org/labkey/query/sql/SqlBase.g +++ b/query/src/org/labkey/query/sql/SqlBase.g @@ -729,15 +729,15 @@ caseExpression ; whenClause - : (WHEN^ logicalExpression THEN! unaryExpression) + : (WHEN^ logicalExpression THEN! valueExpression) ; altWhenClause - : (WHEN^ unaryExpression THEN! unaryExpression) + : (WHEN^ unaryExpression THEN! valueExpression) ; elseClause - : (ELSE^ unaryExpression) + : (ELSE^ valueExpression) ;