I am using database.query to extract records. I am passing a query from the front end.The query can be anything. But I am not getting the records properly in return.

For example, if I am passing the below query:

String query = 'SELECT fax FROM Account LIMIT 5';
Sobject[] objData = Database.query(query);

On debug I am getting this:

 Account:{Fax=905-882-5801, Id=0013000000BcUfoAAF}, 
 Account:{Fax=415-683-2349, Id=0013000000BcUfpAAF}, 
 Account:{Fax=+61-292-417954, Id=0013000000BcUfrAAF}, 
 Account:{Fax=408-588-1296, Id=0013000000BcUfsAAF}

As you can see, the third record does not have Fax column inside. I need it to be like this: Account:{Fax=null, Id=0013000000BcUfqAAF}

How to acheive that? Can it be done using something else other than Database.query. I want max 50,000 records.

2 Answers 2


The field is there, but it's not being printed out by default. If you try


you will get the null value as well. So for your intents, all the data is in place.

  • nice answer !!!Wish i had one more vote to vote this! Oct 21, 2013 at 13:24
String query = 'SELECT fax FROM Account LIMIT 5';
Sobject[] objData = Database.query(query);
system.debug('myData::'+objData[2].fax);//Changed the line

Please note even in the log you will not get Fax=null if field has no value but when you access this into a variable it will be null .

Please see the change i have done to the code in debug line .

  • I need the column names also, to pass in my jqery table. How can I get all the columns from the results? Oct 21, 2013 at 12:03
  • 1
    can you post the jquery code of you dont mind ? Oct 21, 2013 at 12:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .