1
유니온 쿼리 중 하나에서 필드가 0이어야하고 다른 부분에서 하위 쿼리의 평균을 제공하는 다음 쿼리가 있습니다. SELECT 하위 쿼리를 사용해야합니다. 이 결과 집합의 레코드를 두 배로 얻을 것 나는 사용할 수 없습니다 조인 (실제 쿼리는 훨씬 더 복잡하다) :UNION을 사용하는 Firebird SQL 문은 캐스팅을해도 알 수없는 데이터 유형을 제공합니다.
SELECT A,B, CAST(0 as FLOAT) as C
FROM TABLE1
WHERE CONDITION=0
UNION
SELECT T1.A, T1.B, (SELECT AVG(T3.C+T3.E) FROM T3 WHERE T3.A = T1.A) as C
FROM TABLE1 T1
WHERE T1.CONDITION=1
모든 필드는 데이터베이스의 플로트 타입,하지만 난 여전히 데이터 유형을 알 수.
AVG(T3.C+T3.E)
의 데이터 유형을 알 수있는 방법이 있습니까?
제 해결 방법은 CAST(0 as FLOAT) as C
대신 (T1.C*0) as C
을 사용하는 것입니다.
파이어 버드의 버전은 무엇과 무엇 데이터베이스의 방언 (1 또는 3)? –
Firebird 1.5 dialect 3 –
오류는 무엇입니까? –