es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comportamiento de los operadores booleanos


Quiero crear un filtro para MS SQL Server como el siguiente:

sql
WHERE ((esto NO es NULO) o (eso NO es NULO))

He intentado con las respuestas dadas en una pregunta similar:

filter((TAB1.c.this.isnot(None)) | (TAB2.c.that.isnot(None)))

filter(or<em>(TAB1.c.PERSONNE</em>ID.isnot(None), (TAB2.c.PERSONNE_ID.isnot(None)))

pero con esas opciones solo puedo obtener:

sql
WHERE (esto NO es NULO o eso NO es NULO)

y en T-SQL este es un filtro diferente al que quiero obtener.

¿Algún consejo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener el filtro deseado en T-SQL:

    WHERE ((this IS NOT NULL) or (that IS NOT NULL))
    

    puede usar la función text de SQLAlchemy para escribir directamente la expresión SQL:

    from sqlalchemy import text
    
    # Suponiendo que ya ha definido las tablas TAB1 y TAB2
    filter(text("TAB1.this IS NOT NULL OR TAB2.that IS NOT NULL"))
    

    Esto generará el filtro deseado en T-SQL. Sin embargo, tenga en cuenta que el uso de la función text puede hacer que su código sea más susceptible a ataques de inyección de SQL, por lo que asegúrese de sanear correctamente cualquier entrada de usuario que incluya en la expresión SQL.

Comments are closed.