• I've worked with both...

    PostgreSQL definately has some pitfalls that you should be aware of,

    but I've been able to work around most of them.

    First off and most annoying is the lack of a good joined update command.

    The select statement in PGSQL does not allow for table aliases and does not conform to the same syntax as mssql.

    Instead of:

    select * from table1 a join table2 b on a.pkey=b.pkey

    You have to use:

    select * from table1 join table2 where table1.pkey=table2.pkey

    Another particular area of annoyance is the lack of a stored procedure,

    instead everything is done with functions and only on return variable is allowed. You can have more than one function of the same name as long as they accept different datatypes. This has some interesting uses but is mostly more difficult to manage. There is not really a native language for writing function either... it seems like plpgsql is the closest.

    Let me know if you have any other questions,

    Dan