📢✨ Explorando Consultas SOQL e SOSL no Salesforce! ✨📢
Olá, desenvolvedores Salesforce! Hoje vamos explorar algumas consultas SOQL (Salesforce Object Query Language) e SOSL (Salesforce Object Search Language) para ajudá-lo a aprimorar suas habilidades de consulta no Salesforce. Vamos dar uma olhada em alguns exemplos práticos:
1️⃣ Consulta SOQL básica:
SELECT id FROM Account
2️⃣ Consultas SOQL com filtros:
SELECT id, Name FROM Account WHERE Name='onlysalesforce'
SELECT Name, Industry FROM Account WHERE Industry='Energy'
SELECT Name, Industry FROM Account WHERE Industry='Energy' AND Gender__c='MALE'
SELECT Name, Probability FROM Opportunity WHERE Probability >= 50
3️⃣ Consultas SOQL com operadores lógicos:
SELECT Name, Industry FROM Account WHERE Industry='Energy' AND Gender__c='MALE'
SELECT Name, Industry FROM Account WHERE Industry='Energy' OR Industry='Education'
SELECT Name, Industry FROM Account WHERE (Industry='Energy' AND Gender__c='MALE') OR (Industry='Education' AND Gender__c='FEMALE')
4️⃣ Consultas SOQL com operador “NOT”:
SELECT Name, Industry FROM Account WHERE Gender__c='FEMALE'
SELECT Name, Industry FROM Account WHERE Gender__c<>'MALE'
5️⃣ Consultas SOQL com limite de resultados:
SELECT Name FROM Account LIMIT 10
SELECT Name FROM Opportunity WHERE StageName='Closed Won' LIMIT 1
6️⃣ Consultas SOQL com ordenação:
SELECT Name FROM Account ORDER BY Name
SELECT Name FROM Opportunity WHERE StageName='Closed Won' ORDER BY LastModifiedDate DESC LIMIT 10
7️⃣ Consultas SOQL com operador “LIKE”:
SELECT id FROM Account WHERE Name LIKE '%luis%'
SELECT id FROM Account WHERE Name LIKE 'antonio%'
SELECT id FROM Account WHERE Name LIKE '%luis'
SELECT id FROM Account WHERE NOT (Name LIKE '%luis%')
8️⃣ Consultas SOQL com operador “IN”:
SELECT id FROM Account WHERE Name IN ('luis', 'antonio', 'John')
9️⃣ Consultas SOQL com listas e atualizações:
List<Account> accList = [SELECT id FROM Account];
List<Opportunity> oppList = [SELECT Name FROM Opportunity WHERE StageName='Closed Won'];
List<Account> accList = [SELECT Name FROM Account WHERE CreatedDate=THIS_YEAR];
for (Account acc : accList) {
acc.Name = acc.Name + '2023';
}
Update accList;
🔟 Consultas SOQL com variáveis:
String var = 'luis';
List<Account> accList = [SELECT Name FROM Account WHERE Name = :var];
Set<String> nameSet = new Set<String>{'luis', 'antonio', 'John'};
List<Account> accList = [SELECT Name FROM Account WHERE Name IN :nameSet];
1️⃣1️⃣ Consultas SOQL com datas:
SELECT Id, Name FROM Account WHERE LastModifiedDate = TODAY
SELECT Id, Name FROM Account WHERE CreatedDate = LAST_YEAR
SELECT Name FROM Opportunity WHERE LastModifiedDate = LAST_N_WEEKS:6
1️⃣2️⃣ Consultas SOQL com relacionamentos:
SELECT LastName, Account.Name FROM Contact
SELECT Amount__c, Employee__r.Name FROM Salary__c
SELECT Account.Owner.Email FROM Contact WHERE Id = 'luis'
1️⃣3️⃣ Consultas SOQL com subconsultas:
SELECT Name, (SELECT LastName FROM Contacts) FROM Account
SELECT Name, (SELECT Amount__c FROM Salaries__r) FROM Employee__c
1️⃣4️⃣ Consultas SOSL (Salesforce Object Search Language):
As consultas SOSL são usadas para pesquisar registros em vários objetos Salesforce. Elas permitem pesquisar por termos específicos e retornar resultados relevantes. Esses exemplos demonstram como fazer pesquisas por “luis” em diferentes contextos e como especificar quais campos e objetos devem ser retornados nos resultados.
FIND {luis}
/*Usando essa consulta SOSL, irá pesquisar por "luis" em todo o sistema.
Ela retornará o Id do registro; essa busca não diferencia maiúsculas e minúsculas.*/
FIND {luis} IN Name Fields RETURNING Account
/*Essa consulta irá pesquisar por "luis" no campo de nome (Name) dos registros de Account e
retornará o Id do registro.*/
FIND {luis} IN Name Fields RETURNING Account(Name, Industry)
/*Essa consulta irá pesquisar por "luis" no campo de nome (Name) dos registros de Account e
retornará o Id do registro, juntamente com os campos Name e Industry.*/
FIND {luis} IN Name Fields RETURNING Account(Name, Industry), Contact(Name, Phone)
/*Essa consulta irá pesquisar por "luis" no campo de nome (Name) dos registros de Account e
retornará o Id do registro, juntamente com os campos Name e Industry, além dos campos Name e
Phone dos registros relacionados de Contact.*/
FIND {luis} IN Name Fields RETURNING Account(Name, Industry WHERE CreatedDate = THIS_YEAR)
/*Essa consulta irá pesquisar por "luis" no campo de nome (Name) dos registros de Account onde
o registro foi criado neste ano, e retornará o Id do registro,
juntamente com os campos Name e Industry.*/
1️⃣5️⃣ Consultas SOSL com resultados em listas:
List<List<SObject>> searchList = [FIND 'SFDC' IN ALL FIELDS RETURNING Account(Name), Contact(FirstName, LastName)];
List<List<SObject>> searchList = [FIND 'test' IN ALL FIELDS RETURNING Account(Id, Name, Type), Contact(Name, Email), Opportunity(Name, StageName), Lead(Company, Name, Status)];
List<Account> accList = ((List<Account>)searchList[0]);
List<Contact> conList = ((List<Contact>)searchList[1]);
List<Opportunity> optyList = ((List<Opportunity>)searchList[2]);
List<Lead> leaList = ((List<Lead>)searchList[3]);
Espero que esses exemplos de consultas SOQL e SOSL ajudem você a aprimorar suas habilidades de consulta no Salesforce! Fique à vontade para experimentar esses exemplos e adaptá-los às suas necessidades. Aproveite ao máximo o poder das consultas no Salesforce!