在MySQL中,我做如下产生有条件数字列:如何生成SELECT语句有条件数字列
create table align1 (col1 varchar(100),col2 varchar(100));
insert into align1 values ('1','1');
insert into align1 values ('1','1');
insert into align1 values ('1','1');
insert into align1 values ('1','1');
insert into align1 values ('10','1');
insert into align1 values ('10','1');
insert into align1 values ('100','1');
我想实现的是如果COL1值相同的前一行和当前行然后增加新的虚拟列值
查询:
select col1,col2,if(@temp1=col1,@i:[email protected]+1, @i:=1) as _keycol,@temp1:=col1 from align1,(select @temp1:=null,@i:=0)t
一切都在mysql的完美。
现在我想生成相同的列(在上面的例子中 “_KEYCOL” 是列名),在SQL Server中。
很简单,我只是想在select语句中生成一个新列,并且此列的值需要从sql server中的其他列值有条件地设置,这与我在mysql中实现的相同。
预先感谢您。
你为什么要去黑暗的一面? – Strawberry
在SQL中,表格表示*无序*集合。没有“上一个”行,除非列明确指定了排序。查询以任意顺序返回行。你的MySQL查询不正确(好,不稳定),因为没有订单。你有一列指定行的排序吗?如果后续行的值为1,会发生什么情况? –