Will repeated, identical expressions get processed again? I am new to SQL server and I was trying to use an alias in a where clause and then I realized the order of processing makes it hard to do that, so I used this:

SELECT DISTINCT * FROM (SELECT LEFT(fiscal,4) AS fiscalyear FROM
Transactions )      fiscalyears
WHERE fiscalyear &gt;= '2009'


I could have used this too, as it works too:

SELECT DISTINCT LEFT(fiscal, 4) FROM Transactions
WHERE LEFT(fiscal, 4) &gt;= '2009'


Now, the question I have about this is: Is one better than the other method? The query execution plan looks identical for both (I don't know how to read a query plan in depth at all, just saw that it looks similar in both of these cases). 
This is just one small table with small number of rows but will there be noticeable differences with huge amounts of data?
SQL Server is usually pretty smart about not computing the same thing multiple times at the same level of scope. So you should only see one compute scalar in either variation.

In fact, even in this more complex case, SQL Server still manages to only require a single compute scalar, and all the costing is the same:

SELECT DISTINCT LEFT(fiscalyear,6) 
FROM dbo.Transactions
  WHERE LEFT(fiscalyear,5) &gt;= '2009'
  OR LEFT(fiscalyear,4)&gt;'2008';


(And it should go without saying that the better approach - if fiscalyear is date/time - is to have a sargable where clause, like WHERE fiscalyear &gt;= '20090101'. If it is a string, then like @ypercube mentions above, you don't need the left expression - WHERE fiscalyear &gt;= '2009' does the same thing.)

But as a generic answer, if you ever have any doubts about this, run the two queries with actual execution plan turned on, and see if they're different. However, I will say that the subquery form is often used not to prevent an expression from being evaluated multiple times, but to avoid having to type it multiple times. And even if you haven't typed it multiple times, there are still cases where it can still be evaluated multiple times. So there is no absolute "this method is better than the other one."