# SQL 101 – Calculated Fields

When working with SQL you will inevitably be asked to return data from your database in a way it’s not stored.  You’ll be asked to return city, state and zip as a single string, yet they are stored separately.  You’ll be asked to return grand totals, but you only have line item totals.  You’ll be asked to provide counts, totals, or averages, and none of that is in the database.

The answer to all these scenarios is to calculate those values for the user.

# Concatenating Fields

Let’s say we have an address table, and the columns city, state, and zip are each stored in there as VARCHAR.  It’s important that all three are varchar, otherwise you’ll get errors when you try to combine them all into one string.  Given this table, you want to present a list of “cityName, state zipcode”.  Note the spacing and the comma in the string.  How would we do this?

```SELECT
city + ', ' + state + ' ' + zip AS [output]

output
------
Charlotte, NC 28222
Kannapolis, NC 28081
Beverly Hills, CA 90210```

Concatenating VARCHAR values is simple.  Just remember all the fields have to be VARCHARs before concatenation.  If one or more fields aren’t, then you can CONVERT them to VARCHAR first.

# Mathematics

Let’s say you have a table of sales, and in that table it lists, productName, quantitySold, and price.  How could you query this table to add a subtotal column that shows the price paid for that quantity sold?

```SELECT
productName
, quantitySold
, price
, quantitySold * price AS subTotal
FROM sales

prodctName   quantitySold   price   subtotal
----------   ------------   -----   --------
pen          1              .99     .99
paper        25             1.00    25.00```

You can use any mathematical operator in the place of *.  Basically any time you compute a column, the query will look like a formula, keep that in mind, and this will be a breeze!

# Conclusion

This is only the beginning of creating calculated fields in SQL.  In letter posts I’l show you extra functions that can do far more than simple math.  After that I’ll show you aggregate functions that can sum several rows of information into one row.

If you have any questions, please send them in, I’m working hard to help explain the fundamentals of SQL so you can become better equipped to work through the many questions you’ll be asked one day.  I can only help you, if you “help me, help you.”

## By Shannon Lowder

Shannon Lowder is the Database Engineer you've been looking for! Look no further for expertise in: Business Analysis to gather the business requirements for the database; Database Architecting to design the logical design of the database; Database Development to actually build the objects needed by the business logic; finally, Database Administration to keep the database running in top form, and making sure there is a disaster recovery plan.