[英]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.