[SalesForce] Check for a picklist value using SOQL

I have the following SOQL and I only need values from Risk__Actions__r WHERE Risk__Status__c(Picklist) equals to 'Open'. But current way i'm doing displays an error.

no viable alternative at character '"'

Refer to the first Inner Query. Please help on this!

queryString += 'SELECT Id, Name, Owner.Name, grc__Description__c, Risk__Risk_Template__r.Name, Risk__Control_Effectiveness__c, Risk__Control_Effectiveness_Rating__c, grc__Business_Unit__c, grc__Business_Unit__r.Name, ' + 
                            'grc__Category__c, grc__Impact__c, Risk__Inherent_Rating_Lookup__r.Risk__Colour__c, Risk__Residual_Rating_Lookup__r.Risk__Colour__c, grc__Risk_No_Value__c, ' + 
                            'grc__Risk_Owner__r.Name, grc__Next_Review_Date__c, grc__Ranking__c, grc__Risk_Appetite_Statement__c, ' +
                            'Risk__Inherent_Score__c, Risk__Inherent_Impact_Text__c, Risk__Inherent_Likelihood_Text__c, Risk__Inherent_Rating__c, ' +
                            'Risk__Residual_Score__c, Risk__Residual_Impact_Text__c, Risk__Residual_Likelihood_Text__c, Risk__Residual_Rating__c, ' +
                            'Risk__Target_Score__c, Risk__Target_Impact_Text__c, Risk__Target_Likelihood_Text__c, Risk__Target_Rating__c, grc__Risk_Name__c, ' +
                            '(SELECT Name, Risk__Status__c FROM Risk__Actions__r WHERE Risk__Status__c="Open" order by Name), ' +
                            '(SELECT Title, Body FROM Notes WHERE IsPrivate = false), ' +                           
                            '(SELECT Risk__Cause__r.Name FROM Risk__Cause_Risk_Lookup__r order by Risk__Cause__r.Name), ' +
                            '(SELECT Risk__Control__r.Name, Risk__Control__r.grc__Description__c, Risk__Is_Key_Control__c FROM Risk__Risk_Control_Lookup__r WHERE Risk__Is_Key_Control__c = true order by Risk__Control__r.Name) ' +
                        'FROM grc__Risk__c ' +
                        'WHERE grc__Business_Unit__c IN :selectedBUs ' +
                            'AND grc__Status__c IN :riskStatus ' +
                            'AND grc__Category__c IN :categories '; 

Best Answer

You need escaped single quotes around the picklist value instead of double quotes:

'(SELECT Name, Risk__Status__c FROM Risk__Actions__r WHERE Risk__Status__c=\'Open\' order by Name), ' +
Related Topic