我想创建一个我可以在mysql中使用的函数或过程,但我不确定语法是什么。我想要做的是从列中获取值并查看它是1还是2,并根据该值返回A列或B列中的值。 例如,我的select函数类似于:
select a, b, c, functionA(c) from table;
以下是我的函数的伪代码
functionA(int x){
if(x==1)
//return value in column A
else
//return value in column B
}
答案 0 :(得分:1)
select a, b, c, IF(c=1, a, b) from table;
或者您可以使用select case
,但我认为IF
更具可读性。
http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html
答案 1 :(得分:0)
函数将无法从您未传入的表中返回任何内容。要执行您想要的操作,需要3个参数:
create function functionA(p1 integer, p2 integer, p3 integer) returns integer
begin
if p1 = 1 then
return p2
else
return p3
end if;
end;
..您的查询将是:
select a, b, c, functionA(c, a, b) from table;
然而,对于这种简单的查询来说,它更有效,更容易:
select case when c=1 then a else b end from table;