比如:
select getName(id) as name from test
Where name like '%张%'但是这样报错,说找不到name这一列
select getName(id) as name from test
Where name like '%张%'但是这样报错,说找不到name这一列
解决方案 »
- Oracle连接java软件(iReport报表软件)后,在同一张表同时获取大一大二大三的总人数、男生数、女生数,如何解决?求大神!
- oracle中有无'在1个字符串中查找非数字'的函数
- SQL编写
- oracle 10g 在redhat linux as 4安装出现这个问题"OUI-10036:无法创建产品清单位置,您可能无权写入该位置"
- system,sys密码问题
- ORALCE还原部分用户下的数据(系统崩溃后)
- 关于触发器的问题(在一个表中检索符合要求的数据累加起来放到另外一个表中)(急,急,急)
- ORACLE中的ROWNUM?
- delphi中调用oracle函数问题
- win2000server下oracle816安装不上?
- 哪位大虾有实现交叉表的sql代码
- 想学sql编程,看哪些视频和书比较好
select * from (select getName(id) as name from test)
Where name like '%张%'
Where name like '%张%'
别名不能这样用select getName(id) as name from test
Where getName(id) like '%张%'或者 select *
from (select getName(id) as name from test)
Where name like '%张%'
select getName(id) as sName from test --name是保留字,最好换个名字吧
Where getName(id) like '%张%'
order by sName --order by 后面可以直接用别名
;
所以在 where 条件中直接使用 name 会说找不到 name 这一列,你直接使用 getName(id) like 就可以
而在 order by 中,是对内存中的结果集进行排序,内存中,getName(id) 已经被你指定了 name 别名,所以排序的时候是可以指定别名
别名在where中不能使用,先看看别名(Alias)的帮助。
或者说你要先了解SQL的运行机制(执行的顺序)
Where getName(id) like '%张%'