在oracle里用as重命名了一个字段后,这个名字能用在这个sql里吗?
select instr(t.id,'&') as m_id, substr(id,m_id,5) from table1
像上面这样m_id作为重命名的字段名,能用在后面的substr里吗?因为有时instr(t.id,'&')这类的函数比较长,重复的写,会让sql很难看。
[解决办法]
不能 除非在嵌套一次
select m_id,substr(id,m_id,5) from(select instr(t.id,'&') as m_id from table1)
[解决办法]
能不能你试下就晓得了。
我帮你试过了,会报错:不能识别m_id。
如果你有很多地方要用instr(t.id,'&')的话就在外面再套一层select吧
[解决办法]
在一句sql里面重命名的字段 不能识别出来
[解决办法]
不可以这样使用。
但可以变通,请参考:
SELECT SUBSTR(ID, m_id, 5)FROM (selectt INSTR(t.id, '&') AS m_id FROM table1);