从表中选择星号,但如果值为负,则变为正数

时间:2015-10-09 20:12:31

标签: sql sql-server select

我的表格如下:

CREATE TABLE MyTable(
    Info varchar(50) null,
    Col1 int null,
    Col2 int null,
    Col3 int null,
    Col4 int null,
    Col5 int null
);

有办法吗?

4 个答案:

答案 0 :(得分:2)

不使用*,您可以使用ABS

SELECT Info, ABS(Col1) as Col1...
FROM MyTable

答案 1 :(得分:2)

在查询*时,您无法操纵单个字段,您必须单独处理每个字段并对其应用abs

SELECT info, ABS(col1), ABS(col2), ABS(col3), ABS(col4), ABS(col5) 
FROM   mytable

答案 2 :(得分:2)

如果您创建了一个视图,则可以通过选择视图而不是表来轻松地重复使用该逻辑。

CREATE VIEW MyTablePositiveNumbers AS
    SELECT
        Info,
        ABS(Col1) Col1,
        ABS(Col2) Col2,
        ABS(Col3) Col3,
        ABS(Col4) Col4,
        ABS(Col5) Col5
    FROM MyTable;
GO

答案 3 :(得分:1)