根据SQL中的其他值更新一个值

时间:2017-02-04 00:17:11

标签: sql database

在SQL中执行INSERT时,是否可以执行此类操作

INSERT INTO myTable VALUES 
('Superman', 100, 
 '[this value will be either 'Good' or 'bad' depending if the previous row is less than or greater than 100]')

2 个答案:

答案 0 :(得分:1)

我认为你想这样做是因为它是一个参数化的查询,你出于某种原因不想计算好的"或者"坏"查询外部的值?您可以创建该字段' {此值...'进入案例陈述

$ 1时的情况> 100 然后'好' 别的'坏' 端

其中$ 1是您的参数。

如果所有行始终遵循相同的逻辑,那么计算列也可能是您所需要的。那么你就不需要存储好的'或者' Bad'。一个返回这个' Good'或者' Bad'如果不在插页上处理它,你也可以做你想做的事。

答案 1 :(得分:1)

您可以使用例如下面的case语句来获得条件内联值。这是一个MySQL示例:

如果您的表定义如下

CREATE TABLE testtable (
 column1 varchar(20) DEFAULT NULL,
 column2 int(11) DEFAULT NULL
);

然后以下插入将插入值为'Superman'0

的行

insert into testtable (column1,column2) values ('Superman', case when 1>0 then 0 else 100 end);

您应该使用一些变量来驱动case,例如:

insert into testtable (column1,column2) values ('Superman', case when @xcoord > @ycoord then 0 else 100 end);

case上查找更多信息以查找更多自定义项。