首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

在oracle里用as重命名了一个字段后,这个名字能用在这个sql里吗?该如何解决

2012-05-24 
在oracle里用as重命名了一个字段后,这个名字能用在这个sql里吗?select instr(t.id,&) as m_id, substr(i

在oracle里用as重命名了一个字段后,这个名字能用在这个sql里吗?
select instr(t.id,'&') as m_id, substr(id,m_id,5) from table1


像上面这样m_id作为重命名的字段名,能用在后面的substr里吗?因为有时instr(t.id,'&')这类的函数比较长,重复的写,会让sql很难看。

[解决办法]
不能 除非在嵌套一次

SQL code
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里面重命名的字段 不能识别出来
[解决办法]
不可以这样使用。
但可以变通,请参考:
Python code
SELECT SUBSTR(ID, m_id, 5)FROM (selectt INSTR(t.id, '&') AS m_id FROM table1); 

热点排行