在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]')
答案 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
上查找更多信息以查找更多自定义项。