On Aug 7, 2014, at 11:34 AM, dweitzenfeld <[email protected]> wrote:
> \nFROM [MemberFacts] \nWHERE ([MemberFacts].[Rtid] LIKE ? + '%%') = 0) AS
> anon_1 LEFT OUTER JOIN [AffinionCodes] AS [AffinionCodes_1] ON
> anon_1.[MemberFacts_Rtid] = [AffinionCodes_1].[Rtid]" ('0000',)
>
>
> It seems to be the " = 0 " that sql server is complaining about. Is this a
> known issue?
>
Well SQL Server doesn't have a "False" construct, so the best we can do for
"false" is 0 in SQL server, which isn't going to work in more elaborate
situations such as the above.
if you want to negate things, just use sqlalchemy.not_() or ~:
from sqlalchemy.sql import column
from sqlalchemy import String
from sqlalchemy.dialects import mssql
c = column('x', String)
print (~c.startswith("foo")).compile(dialect=mssql.dialect())
classic$ python test.py
x NOT LIKE :x_1 + '%%'
> I've created a silly workaround, by baking the negation in:
>
> @hybrid_property
> def is_not_legacy(self):
> return self.Rtid[:4] != '0000'
>
> @is_not_legacy.expression
> def is_not_legacy(cls):
> return cls.Rtid.notlike('0000%')
>
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.