阅读:2575回复:2
[求助]一个SQL update 的问题
请教一个问题<BR>我有一个表(table)<BR>表头为NO
<P>表结构如下</P> <P>NO NO<BR>1 北京<BR>1 --------〉变成 北京<BR>2 上海<BR>3 天津<BR>我想用一个update语句让1=北京,2=上海,3=天津<BR>请问怎么用一个SQL语句实现全部的转换</P> <P>如果我用一个SQL语句 转化北京 就是<BR>update table set NO='北京'where NO='1' </P> <P>然后我还要再用一个语句转化上海</P> <P>这样如果种类多得话 就比较麻烦</P> <P>我的目的就是用一句话能不能全部转化</P> <P>就用上面的那个例子吧</P> <P>多谢了</P> <P><BR> </P> |
|
1楼#
发布于:2006-09-09 21:07
在oracle中可以使用case 语句
|
|
2楼#
发布于:2006-09-09 21:18
<P><BR>D:\oraclexe\app\oracle\product\10.2.0\server\BIN>net start OracleXETNSListener<BR>OracleXETNSListener 服务正在启动 .<BR>OracleXETNSListener 服务已经启动成功。</P>
<P><BR>D:\oraclexe\app\oracle\product\10.2.0\server\BIN>net start OracleServiceXE<BR>OracleServiceXE 服务正在启动 ...............<BR>OracleServiceXE 服务已经启动成功。</P> <P><BR>D:\oraclexe\app\oracle\product\10.2.0\server\BIN>sqlplus <a href="mailtsde/sde@xe" target="_blank" >sde/sde@xe</A></P> <P>SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 9月 9 21:10:09 2006</P> <P>Copyright (c) 1982, 2005, Oracle. All rights reserved.</P> <P><BR>连接到:<BR>Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production</P> <P>SQL> create table test(no varchar2(10));</P> <P>表已创建。</P> <P>SQL> insert into test values ('a');</P> <P>已创建 1 行。</P> <P>SQL> insert into test values ('b');</P> <P>已创建 1 行。</P> <P><BR>SQL> update test set no=(case no when 'a' then '1' when 'b' then '2' else '0' en<BR>d );</P> <P>已更新2行。</P> <P>SQL> select * from test;</P> <P>NO<BR>--------------------<BR>1<BR>2</P> <P>SQL></P> <P>使用decode函数也可以<BR></P> |
|