我有以下查询,其中在一个联合查询中,字段必须为 0,而在另一部分中,它给出子查询的平均值。我必须使用 SELECT 子查询。我不能使用 JOINS,因为它会在结果集中产生双倍的记录(实际查询要复杂得多):
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)
?
我的解决方法是使用(T1.C*0) as C
而不是CAST(0 as FLOAT) as C
.