I was reading the answer from [here][1] (from stackoverflow, I think should ask in here)

> NOLOCK means placing no locks at all.
> 
> Your query may returns portions of data as of before UPDATE and
> portions as of after UPDATE in a single query.

I get that nolock will not place lock to the table, so other people can query the same time.

From the answer and example it show, it fetch data while the data is being updating.

Why does that happen?  

I am assuming for normal select it will try place lock on table, so when update statement is executed, it place a lock on the row or page.  Then when I try to run select statement, it cannot put the lock until the update statement lock is released.

But in this case because the select statement doesn't try to put lock on the table, so it can run without waiting for the update statement release the lock?

  [1]: http://stackoverflow.com/questions/1682240/what-can-happen-as-a-result-of-using-nolock-on-every-select-in-sql-sever