title: Difference between *string and sql.NullString
body: <p>I've been strugguling with SQL NULL values in Golang recently. After trying to unsuccessfully unmarshal JSON objects using <code>Decode()</code> and <code>sql.NullString</code>, I came to this answer on StackOverflow : </p>
  
  <p><a href="https://stackoverflow.com/questions/31048557/assigning-null-to-json-fields-instead-of-empty-strings-in-golang#answer-31048860">Assigning null to JSON fields instead of empty strings in Golang</a></p>
  
  <p>The solution using a string pointer seems to work perfectly with Decode() and nil values. So what is the difference between <code>sql.NullString</code> and <code>*string</code> ?
  Is it just about nil checking ?</p>