This topic has been archived. It cannot be replied.
-
工作学习 / 专业技术讨论 / 一个SQL的问题~~~~在一个表中有colum X,X可能有三个值“1”,“2”,“3”。 现在,我想把“1”换成“A", "2"换成”B","3" 换乘“C". 这个表有N条记录...
例如 Table abc:
X
"1"
"2"
"1"
"3"
.....
"2"
转化后成
X
"A"
"B"
"A"
"C"
.....
"B"
问题:是否能用一条SQL 语句,实现以上功能?
Thanks...
-serenade123(橘子红了);
2007-8-14
{335}
(#3868098@0)
-
CASE
-zealot(站直了别趴下);
2007-8-14
(#3868107@0)
-
用CASE太直接了,不好玩。:) UPDATE table SET X = CASE X='1' THEN 'A' CASE X='2' THEN 'B' CASE X='3' THEN 'C' ELSE ' ' END
-bdbs(不多不少);
2007-8-14
(#3868224@0)
-
sql里有case语句吗?
-serenade123(橘子红了);
2007-8-14
(#3868306@0)
-
你用的什么数据库?
-newkid(newkid);
2007-8-14
(#3868317@0)
-
让你笑话了。。。俺用的是俺们自己的数据库,可以说是类数据库,不是oracle,db2..但它好像支持类(似)sql语言:)))
所以,我想用update和 select组合来实现,可是偶对sql不熟悉。。。
-serenade123(橘子红了);
2007-8-14
(#3868353@0)
-
如果是类SQL,那你得先查一下这个类SQL的手册,看看支持什么不支持什么。如果不支持table join或者sub query,还就只能分三个query来做了。
-bdbs(不多不少);
2007-8-14
(#3868395@0)
-
小蛋糕一块。UPDATE table SET X =CHAR(64+X)
-bdbs(不多不少);
2007-8-14
(#3868212@0)
-
你错误的理解我我的意思。。。不是“1”到“A"的转化。。。是有三种情况,
不同情况转换不同的值,把所以纪录扫描一编...
是否可以用update 和select的组合完成?
-serenade123(橘子红了);
2007-8-14
{131}
(#3868303@0)
-
如果三种情况无规律性,那只能用CASE了#3868224。不过不明白你为什么不能分三个query。
-bdbs(不多不少);
2007-8-14
(#3868336@0)
-
有规律啊。。。你也可以理解成把所有叫”JACK"改成“JACKY", "TOM"->"TOMMY","STEVEN"->'STEV"
就这三种情况。。。如果用三条查询怎么做?
-serenade123(橘子红了);
2007-8-14
(#3868377@0)
-
这显然不是我说的那种1、2、3和A、B、C的规律。用三个query就是用WHERE啦。看来你是真的不懂SQL的。UPDATE table SET x ='JACKY' WHERE x='JACK'
UPDATE table SET x ='TOMMY' WHERE x='TOM'
UPDATE table SET x ='STEV' WHERE x='STEVEN'
-bdbs(不多不少);
2007-8-14
{142}
(#3868406@0)
-
THANKS....
-serenade123(橘子红了);
2007-8-14
(#3868457@0)