반응형
이것이 SQL에서 부울 테스트를 수행하는 적절한 방법입니까?
활성이 "부울 필드"라고 가정합니다 (작은 정수, 0 또는 1 포함).
# Find all active users
select * from users where active
# Find all inactive users
select * from users where NOT active
즉, "NOT"연산자를 부울 필드에 직접 적용 할 수 있습니까?
SQL의 부울은 비트 필드입니다. 이는 1 또는 0을 의미합니다. 올바른 구문은 다음과 같습니다.
select * from users where active = 1 /* All Active Users */
또는
select * from users where active = 0 /* All Inactive Users */
Postgres를 사용하면 다음을 사용할 수 있습니다.
select * from users where active
또는
select * from users where active = 't'
정수 값을 사용하려면 문자열로 간주해야합니다. 정수 값을 사용할 수 없습니다.
select * from users where active = 1 -- Does not work
select * from users where active = '1' -- Works
MS SQL 2008은 true 또는 false의 문자열 버전을 사용할 수도 있습니다.
select * from users where active = 'true'
-- or --
select * from users where active = 'false'
SQL Server에서는 일반적으로 사용합니다. 다른 데이터베이스 엔진에 대해 잘 모릅니다.
select * from users where active = 0
개인적으로 부울에 대한 기본 유형이없는 데이터베이스의 경우 'Y'및 'N'값으로 char (1)을 사용하는 것을 선호합니다. 문자는 문자를 읽는 사람들이 이제 1이 참에 해당하고 0이 거짓에 해당한다고 가정하는 숫자보다 더 사용자가 선호합니다.
'Y'와 'N'은 (N) Hibernate를 사용할 때도 잘 매핑됩니다.
PostgreSQL은 부울 유형을 지원하므로 SQL 쿼리는 PostgreSQL에서 완벽하게 작동합니다.
SQLite3를 사용하는 경우주의하십시오.
't'또는 'f'만 필요합니다. 1 또는 0이 아닙니다. TRUE 또는 FALSE가 아닙니다.
어려운 방법을 배웠습니다.
참고 URL : https://stackoverflow.com/questions/859762/is-this-the-proper-way-to-do-boolean-test-in-sql
반응형
'UFO ET IT' 카테고리의 다른 글
Qt 및 Boost 혼합 (0) | 2020.11.14 |
---|---|
JSON 용 스트리밍 API가 있습니까? (0) | 2020.11.14 |
"gcc -s"와 "strip"명령의 차이점은 무엇입니까? (0) | 2020.11.14 |
Laravel : Auth :: user ()-> id가 객체가 아닌 속성을 가져 오려고합니다. (0) | 2020.11.12 |
Android-뒤로 버튼 시뮬레이션 (0) | 2020.11.12 |