小编Bo *_*son的帖子

确定列上使用的MAX十进制比例

在MS SQL中,我需要一种方法来确定某个十进制列的行使用的最大比例.

例如,Col1 Decimal(19,8)的比例为8,但我需要知道是否所有8个实际上都在使用,或者是否只使用了5,6或7.

样本数据:

123.12345000
321.43210000
5255.12340000
5244.12345000
Run Code Online (Sandbox Code Playgroud)

对于上面的数据,我需要查询返回5,或123.12345000或5244.12345000.

我不关心性能,我确定全表扫描会有序,我只需要运行一次查询.

sql t-sql sql-server precision decimal

14
推荐指数
2
解决办法
6425
查看次数

在MSSQL 2008中合并行,

我正在尝试确定MSSQL 2008中的最佳方法.

这是我的示例数据

TransDate  Id     Active
-------------------------
1/18 1pm   5      1    
1/18 2pm   5      0    
1/18 3pm   5      Null    
1/18 4pm   5      1    
1/18 5pm   5      0    
1/18 6pm   5      Null
Run Code Online (Sandbox Code Playgroud)

如果按Id分组并由TransDate排序,我想要活动列的最后一个非空值和TransDate的MAX

SELECT MAX(TransDate) AS TransDate, 
       Id,
       --LASTNonNull(Active) AS Active
Run Code Online (Sandbox Code Playgroud)

结果如下:

TransDate  Id  Active
---------------------    
1/18 6pm   5   0
Run Code Online (Sandbox Code Playgroud)

它就像一个Coalesce但是在行上,而不是两个值/列.

还有许多其他列也会应用这种类似的方法,所以我真的不想为每个列进行单独的连接.

有任何想法吗?

sql t-sql sql-server coalesce sql-server-2008

4
推荐指数
1
解决办法
4411
查看次数

标签 统计

sql ×2

sql-server ×2

t-sql ×2

coalesce ×1

decimal ×1

precision ×1

sql-server-2008 ×1