请教一个关于语句的伪列简单问题计划
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
成都卵巢性不孕医院乌鲁木齐哪家治疗男科医院好
华润江中
-
- 下一篇
- 请求对象错误覆盖