programing

빈 결과 세트를 선택하려면 어떻게 해야 합니까?

goodsources 2022. 11. 10. 20:53
반응형

빈 결과 세트를 선택하려면 어떻게 해야 합니까?

CASE 스테이트먼트와 함께 MySQL 스토어드 프로시저를 사용하고 있습니다.

CASE의 ELSE 절(디폴트:에 상당)에서 빈 결과 세트를 선택하여 반환함으로써 EASE 케이스를 처리하지 않음SQL 오류를 회피하고 일반 쿼리에서 행이 반환되지 않은 것처럼 빈 결과 세트를 반환합니다.

지금까지 저는 다음과 같은 방법으로 작업을 수행해 왔습니다.
Select NULL From users Where False

그러나 이 예의 'users'와 같이 기존 테이블의 이름을 지정해야 합니다.작동하지만, 사용한 테이블 이름이 변경되거나 삭제되어도 깨지지 않는 방법을 원합니다.

해봤어요Select NULL Where False효과가 없어요.

사용.Select NULL는 빈 세트를 반환하지 않고 컬럼이 NULL이고 값이 NULL인 행을 1개 반환합니다.

MySQL에는 'dual'이라는 더미 테이블이 있는데, 이 테이블을 사용할 수 있어야 합니다.

select
    1
from
    dual
where
    false

이렇게 하면 항상 빈 결과가 나타납니다.

이는 Postgres 및 Netezza에서 테스트된 대부분의 DB에서 작동합니다.

SELECT NULL LIMIT 0;

T-SQL(MSSQL):

SELECT Top 0 1;

어때.

 SELECT * FROM (SELECT 1) AS TBL WHERE 2=3

myphp를 확인했는데 sqlite에서도 동작하고 다른 DB 엔진에서도 동작합니다.

이것은 아마 모든 데이터베이스에서 동작할 것입니다.

SELECT * FROM (SELECT NULL AS col0) AS inner0 WHERE col0 IS NOT NULL;
SELECT TOP 0 * FROM [dbo].[TableName]

이는 지속적인 스캔 오퍼레이터에 대한 합리적인 접근법입니다.

SELECT NULL WHERE FALSE;

mysql의 postgresql, subquery로 동작합니다.

이건 어때?

SELECT 'MyName' AS EmptyColumn
FROM dual
WHERE 'Me' = 'Funny'
SELECT * FROM (SELECT NULL) WHERE 0

포스트그레SQL a simple

SELECT;

효과가 있습니다. '알 수 없음'이라는 라벨이 붙은 열도 표시되지 않습니다.
단, 1행은 취득되었다고 표시되어 있습니다.

언급URL : https://stackoverflow.com/questions/1456106/how-to-select-an-empty-result-set

반응형