>>For logical fields, I'm partial to just using the field name (for .T.) or NOT the fieldname (for .F.). That's true for me everywhere, not just in SQL.
>
>Typing impaired and lazy me was doing the same early on.
>Then a chunk of SQL had to be made runnable on DB2, back then having the idea to handle it by numeric 1 and 0.
>Back then Q'nD enhancement with preprocessor driven TRUE and FALSE.
>
>While today I might fall back to lazy leaving out "= .t.", falsy often either handled via empty(), "!=" or "= .F:", as those will incur less effort to modify to support backends without logical data type.
SQL server doesn't lack the logical data type. It's only unable to handle it as such. It treats it as something that can be compared with 1 or 0 and then the result of that comparison will be a logical value, but the logical field per se can't be used in an expression. It's an orphan.