Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-如果值为真,则指定相同的值如果未指定增量1值_Sql_Db2 - Fatal编程技术网

SQL-如果值为真,则指定相同的值如果未指定增量1值

SQL-如果值为真,则指定相同的值如果未指定增量1值,sql,db2,Sql,Db2,我有下面的表格,其中对于V1列,我想分配相同的值是科目值是相同的,如果不是,我想分配1个增量值。 类似于excel的内容:=if(B2=B1、C1、C1+1) 谢谢大家! 对于未来的读者,这里有一个更通用的解决方案(数据库不可知),因为某些(尽管非常流行)数据库方言(例如MySQL、SQLite、MS Access)不幸还没有,因此没有Over()子句: select ccr, account, dense_rank() over (order by account) as V1 from t

我有下面的表格,其中对于V1列,我想分配相同的值是
科目
值是相同的,如果不是,我想分配1个增量值。 类似于excel的内容:
=if(B2=B1、C1、C1+1)


谢谢大家!

对于未来的读者,这里有一个更通用的解决方案(数据库不可知),因为某些(尽管非常流行)数据库方言(例如MySQL、SQLite、MS Access)不幸还没有,因此没有
Over()
子句:

select ccr, account, dense_rank() over (order by account) as V1
from t
SELECT ccr, account,
   (SELECT Count(*) 
    FROM 
      (SELECT DISTINCT account FROM tableName) As t2
       WHERE t2.account <= t1.account)  As V1
FROM tableName t1

哪个数据库引擎?@Douglas Barbin-DB2Why您想要这些信息?你想用它做什么?另外,在看了你的另一个问题之后,从更大的角度来看,你想做什么(可能想作为一个单独的问题发布)?完全模仿Excel通常不是处理数据的最佳方式。我感觉你把一项任务分解得有点过分了@Clockwork Muse——我有两个专栏,每个专栏都有超过100000条记录。第一列表示客户代码,第二列表示该客户的帐号。我在列中的关系是多对多的,一个客户可以有多个帐户,两个或更多客户可以有相同的帐户。基于此,我必须在第三列中添加一个值,以便对所有连接的客户端及其所有帐户进行分组。
SELECT ccr, account,
   (SELECT Count(*) 
    FROM 
      (SELECT DISTINCT account FROM tableName) As t2
       WHERE t2.account <= t1.account)  As V1
FROM tableName t1
ccr account V1
1     100   1
2     100   1
1     101   2
1     102   3
2     200   4
3     200   4
16    200   4
18    200   4