SOQL SELECT ALL FIELD

来源:互联网 发布:前端解析json数组 编辑:程序博客网 时间:2024/05/30 05:03
 

Have you ever wanted to do an SQL SELECT * statement in SOQL? Well here's the workaround. Generally, I would recommend that you only query for data that you need, however I have been using this on my current project where the data model constantly changes.

To use, copy and paste this code into your org and modify the 3 lines with // modify as needed at the end.

// Initialize setup variables
String objectName = 'Contact'; // modify as needed
String query = 'SELECT';
Map<String, Schema.SObjectField> objectFields = Schema.getGlobalDescribe().get(objectName).getDescribe().fields.getMap();
// Grab the fields from the describe method and append them to the queryString one by one.
for(String s : objectFields.keySet()) {
   query += ' ' + s + ', ';
}
// Manually add related object's fields that are needed.
query += 'Account.Name,'; // modify as needed
// Strip off the last comma if it exists.
if (query.subString(query.Length()-1,query.Length()) == ','){
    query = query.subString(0,query.Length()-1);
}
// Add FROM statement
query += ' FROM ' + objectName;
// Add on a WHERE/ORDER/LIMIT statement as needed
query += ' WHERE firstName = \'test\''; // modify as needed
  
try {
        List<Contact> contacts = database.query(query);
} catch (QueryException e){
        //perform exception handling
}