public void ExceptTest() { SqlSelect s1 = SqlDml.Select(SqlDml.TableRef(Catalog.Schemas["main"].Tables["track"])); s1.Columns.Add(SqlDml.Asterisk); SqlSelect s2 = SqlDml.Select(SqlDml.TableRef(Catalog.Schemas["main"].Tables["track"])); s2.Columns.Add(SqlDml.Asterisk); SqlSelect s3 = SqlDml.Select(SqlDml.TableRef(Catalog.Schemas["main"].Tables["track"])); s3.Columns.Add(SqlDml.Asterisk); Console.WriteLine(sqlDriver.Compile(s1.Except(s2)).GetCommandText()); Console.WriteLine(sqlDriver.Compile(s1.Except(s2).Except(s3)).GetCommandText()); Console.WriteLine(sqlDriver.Compile(s1.Except(s2.Except(s3))).GetCommandText()); Console.WriteLine(sqlDriver.Compile(SqlDml.Except(s1, s2)).GetCommandText()); Console.WriteLine(sqlDriver.Compile(SqlDml.Except(s1, s1.Except(s2))).GetCommandText()); Console.WriteLine(sqlDriver.Compile(SqlDml.Except(s1.Except(s2), s1)).GetCommandText()); Console.WriteLine(sqlDriver.Compile(SqlDml.Except(s1.Except(s2), s1.Except(s2))).GetCommandText()); }