首页 >> 租房知识

请教一个关于语句的伪列简单问题计划

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

不用伪列却很正常:

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

成都卵巢性不孕医院
乌鲁木齐哪家治疗男科医院好
华润江中