请教一个关于语句的伪列简单问题物业
2021-09-06 来源:临清租房网
请教一个关于sql语句的伪列简单问题。
有如下sql:我把TO_CHAR(_FLWORINTERP, \"yyyy-mm-dd\") || WNO 定义成伪列DT_FLWORINTERPS ,为什么在where条件中不能用呢,sql提示无法识别的字符。
SQL code
SELECT FL.*,
TO_CHAR(_FLWORINTERP, \"yyyy-mm-dd\") || WNO as DT_FLWORINTERPS --这里定义的伪列为什么在where语句中不能用呢???????????
FROM AIDSZH_SGRA_ADULT_FLW FL,
(SELECT CARD_ID,
MAX(TO_CHAR(_FLWORINTERP, \"yyyy-mm-dd\") || WNO) DT_FLWORINTERP
FROM AIDSZH_SGRA_ADULT_FLW F
WHERE _FLWORINTERP = TO_DATE(\"\", \"yyyy-mm-dd\")
AND NECODE LIKE \"371081%\"
GROUP BY RD_ID) FMAX
WHERE _FLWORINTERPS = _FLWORINTERP
AND RD_ID = RD_ID
不用伪列却很正常:
公司拟通过发行股份及支付现金的方式购买郭风香等持有的久爱致和100%股权、久爱天津100%股权和泸州致和100%股权 SQL code
SELECT FL.*
FROM AIDSZH_SGRA_ADULT_FLW FL,
(SELECT CARD_ID,
MAX(TO_CHAR(_FLWORINTERP, \"yyyy-mm-dd\") || WNO) DT_FLWORINTERP
FROM AIDSZH_SGRA_ADULT_FLW F
WHERE _FLWORINTERP = TO_DATE(\"\", \"yyyy-mm-dd\")
AND NECODE LIKE \"371081%\"
GROUP BY RD_ID) FMAX
WHERE ((TO_CHAR(_FLWORINTERP, \"yyyy-mm-dd\")) || WNO) = _FLWORINTERP
AND RD_ID = RD_ID
TO_CHAR(_FLWORINTERP, \"yyyy-mm-dd\") || WNO as DT_FLWORINTERPS
DT_FLWORINTERPS是列的别名,where子句中是不允许用列的别名的。
一定要用别名,可以先查fl,把它作为一个子查询。
select a.* from
(select to_char(...) as aaaa,fl.* from fl) a,
(select ...) b
where a. aaaa=aa
台州盆腔炎治疗哪家好西安治妇科医院
牙疼怎么缓解
-
- 上一篇
- 请教一个的问题