sql表中两列之间的区别

时间:2019-10-03 11:07:20

标签: sql sql-server

我想要表中两列之间的差异     我的表格如下所示:

SecurityID      High        Low     
918         15405.00000 15180.00000 
918         15500.00000 15240.00000 
918         15690.00000 15425.00000 

我想要桌子:

SecurityID      High        Low     difference
918         15405.00000 15180.00000 15405.00000-15180.00000=225.0000
918         15500.00000 15240.00000 15500.00000-15240.00000=260.0000
918         15690.00000 15425.00000 15690.00000-15425.00000=265.0000

请帮助我 我想要两列之间的区别

3 个答案:

答案 0 :(得分:0)

您的查询应该是这样的:

extension UINavigationController {
    override open func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        topViewController?.hidesBottomBarWhenPushed = true    
    }
}

您可以了解有关Arithmetic Operators

的更多信息

答案 1 :(得分:0)

如果您希望答案在表格中显示为一列,那么当问题出现时,我会在表格上创建一个计算列。

让我们说这张桌子叫弗雷德。

您可以通过发出以下alter table命令来实现此目的...

alter table fred
add difference as cast(high as varchar(10)) + '-' + cast(low as varchar(10)) + '=' + cast(high - low as varchar(10));

这将添加一个称为差的计算列。每次执行select语句时,SQL Server都会根据公式和其他两个值来计算该列的值,而实际上不会在表的此列中存储任何值。 (这样做会有非常小的性能开销。)

但是,如果您希望将该值保留到该列,则可以改为发出以下命令。

alter table fred
add difference as cast(high as varchar(10)) + '-' + cast(low as varchar(10)) + '=' + cast(high - low as varchar(10)) persisted;

不是在发出选择命令时计算值,而是在更新高或低时计算该值。 (选择时没有性能开销,但是插入或更新时开销稍高。)

有关计算列的更多信息,请参见:
https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-2017

答案 2 :(得分:0)

尝试一下:

Select
    SecurityID,
    High,
    Low,
    cast(High as varchar(25)) + '-' + cast(Low as varchar(25)) + ' = ' + cast(High - Low as varchar(25)) as Results 
From TableA