programing

sqlalchemy가 NULL이 아닙니다. 선택

topblog 2023. 7. 2. 18:57
반응형

sqlalchemy가 NULL이 아닙니다. 선택

SQL에서와 같이 필터를 추가하여 특정 열에서 NULL이 아닌 값을 선택하려면 어떻게 해야 합니까?

SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;

SQL 화학 필터에서 동일한 작업을 수행하려면 어떻게 해야 합니까?

select = select(table).select_from(table).where(all_filters) 

column_obj != None제약 조건을 생성합니다.

열 컨텍스트에서 절을 생성합니다.a != b대상이 다음과 같은 경우None을 생성합니다.IS NOT NULL.

또는 다음을 사용합니다.

구현IS NOT교환입니다.

보통.IS NOT의 값과 비교할 때 자동으로 생성됩니다.None이것으로 결정되는 것은NULL단, 명시적인 사용은IS NOT특정 플랫폼의 부울 값과 비교할 경우 바람직할 수 있습니다.

데모:

>>> from sqlalchemy.sql import column
>>> column('YourColumn') != None
<sqlalchemy.sql.elements.BinaryExpression object at 0x10f81aa90>
>>> print(column('YourColumn') != None)
"YourColumn" IS NOT NULL
>>> column('YourColumn').is_not(None)
<sqlalchemy.sql.elements.BinaryExpression object at 0x11081edf0>
>>> print(column('YourColumn').is_not(None))
"YourColumn" IS NOT NULL

사용할 수 없습니다.is not None여기서, 물체 동일성 불평등 테스트는 과부하가 걸릴 수 없기 때문입니다.!=캔; 당신은 그냥 얻을 것입니다.True대신에ColumnClause인스턴스가 다음과 같은 개체가 아닙니다.None싱글톤:

>>> column('YourColumn') is not None
True

*) 메서드의 이전 이름입니다.isnot()SQLChemy 1.4에서 이름이 바뀌었습니다.이전 이름은 이전 버전과의 호환성을 위해 계속 사용할 수 있습니다.

0.7.9 버전부터는 필터 연산자를 사용할 수 있습니다..isnot다음과 같이 제약 조건을 비교하는 대신:

query.filter(User.name.isnot(None))

이 방법은 pep8이 문제가 되는 경우에만 필요합니다.

출처: sqlalchemy 설명서

다른 사람들이 궁금해 할 경우, 당신은 사용할 수 있습니다.is_생성하기 위해foo IS NULL:

sqlalchemy에서 >>.sql 가져오기 열>> print (열('foo'.is_(없음)foo는 NULL입니다.>> print (열('foo'). is not(없음))foo는 Null이 아닙니다.

언급URL : https://stackoverflow.com/questions/21784851/sqlalchemy-is-not-null-select

반응형