繁体   English   中英

获得零之前的最后一个值

[英]Get Last Value Before zero

我在SQL Server中有此表:

Cell1   Cell2   Cell3   Cell4   Cell5   Cell6   vbzero

3        65      **12**  0        0       0       
12        4        5      1       6      8  
10        0        0      0       0       0 
1        90        0      0       0       0 

我想得到零之前的最后一个值。 例如,在第一行中获取12,在第二行中获取8,因为第二行不包含零,而第三行获取10,...

如何在SQL Server中做到这一点。

尝试类似...

SELECT COALESCE( NULLIF(Column3, 0) , NULLIF(Column2, 0) , NULLIF(Column1, 0) )
FROM TableName

测试数据

DECLARE @TABLE TABLE 
(Cell1 INT,Cell2 INT,Cell3 INT,Cell4 INT,Cell5 INT,Cell6 INT)
INSERT INTO @TABLE VALUES 
(3 ,  65  , 12, 0 , 0 , 0),       
(12,  4   , 5 , 1 , 6 , 8),  
(10,  0   , 0 , 0 , 0 , 0), 
(1 ,  90  , 0 , 0 , 0 , 0) 

询问

SELECT COALESCE( 
              NULLIF(Cell6, 0) , NULLIF(Cell5, 0) , NULLIF(Cell4, 0) 
             ,NULLIF(Cell3, 0) , NULLIF(Cell2, 0) , NULLIF(Cell1, 0)
               )
FROM @TABLE

结果

12
8
10
90

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM