SQL中case改为if实现的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:01:24
USE YGGL
GO
SELECT ID=CASE ID
WHEN 1 THEN 'a'
WHEN 2 THEN 'b'
WHEN 3 THEN 'c'
WHEN 4 THEN 'd'
WHEN 5 THEN 'e'
END
FROM Tepy
Tepy是有一个表,ID是这个表中的一个属性。
ID属性列本来显示1、2、3、4、5,现在要显示上述相应字母

用if怎么实现,谢谢
声明:【上面的语句没有语法错误】
我只是要用if语句,可以把ID列里的整数全部换成另一种显示,不在改变原数据表的前提下。
我才学数据库才几个星期,所以说这种题目不会很复杂的,大家不要想的太深奥,就是一个查询语句。
【老师留的题目就是要用if来实现上述功能,所以请不要给个答案说"还是用case吧"】

还是用case
你这句有问题,从你的语句上来看,id是数字型
那么,你想显示字符就不能用等于号
这样写
USE YGGL
GO
SELECT CASE ID
WHEN 1 THEN 'a'
WHEN 2 THEN 'b'
WHEN 3 THEN 'c'
WHEN 4 THEN 'd'
WHEN 5 THEN 'e'
END 'ID'
FROM Tepy

是用函数写吗?
create or replace function getValid (is_Valid IN number)
return varchar2 is
Result varchar2(100);
begin
--判断is_Valid
if (is_Valid is null) then
Result := '';

if (is_Valid =1) then
Result := 'a';
if (is_Valid = 2) then
Result := 'b';
if (is_Valid = 3) then
Result := 'c';
if (is_Valid = 4 ) then
Result := 'd';
if (is_Valid = 5) then
Result := 'e';

end if;
return(Result);
end getValid;

做个函数调用就可以了!