A表id name fen 1 java 60
2 C# 70
3 php 50
结果这样的
id name fen pass1 java 60 通过
2 C# 70 通过
3 php 50 未通过
2 C# 70
3 php 50
结果这样的
id name fen pass1 java 60 通过
2 C# 70 通过
3 php 50 未通过
解决方案 »
- 求教一个oracle基础语法
- oracle如何查看已经完成的过程或函数的源代码信息?
- 对于日期,如果用list分区好吗?
- windows 无法访问 虚拟机(linux)
- 求救,oracle和postgres里double型的数据,用C语言求值,为什么结果不同
- 如何找到指定表在某个时间点被删的数据?
- oracle中的表结构和sqlserver中的表结构一样。如何用sql语句,把oracle中的数据导到sqlserver中来?
- 请教怎么使得表名能>40个字符
- 请问Oracle 8.1.6典型安装完成后,还必须进行哪些设置和优化工作?
- 我用JBuilder 7连接局域网内一ORACLE 9( 在本机可以连接)的问题?
- oracle的日誌問題
- 如何在oracle PROCEDURE 中执行 sql文?
from a;
alter table a add pass nvarchar2(20);update a
set pass=case when fen>=60 then '通过'
else '未通过'
end
SQL>
SQL> with A as(
2 select 1 id, 'java' name, 60 fen from dual union all
3 select 2 id, 'C#' name, 70 fen from dual union all
4 select 3 id, 'php' name, 50 fen from dual
5 )
6 select id,name,fen,case when fen>=60 then '通过' else '未通过' end pass from A
7 / ID NAME FEN PASS
---------- ---- ---------- ---------
1 java 60 通过
2 C# 70 通过
3 php 50 未通过SQL>
如果你需要PASS这样的一个列,那就先修改表结构,如果只需要结果
那么可以直接select 出一个伪列即可
from a;Right!
关键是理解sign函数
sign(x)
x>0 返回1
x=0 返回0
x<0 返回-12、使用case函数,这个应该好理解一些。
from A