Sql 在值中放置负号

Sql 在值中放置负号,sql,select,negative-number,Sql,Select,Negative Number,我有一个SELECT查询,如果百分比值小于100,我想在百分比值中加一个负号。我的问题是: SELECT produces, amount, percentage FROM inventory 我试过: SELECT produces, amount, CASE WHEN percentage<100 THEN '-'+percentage ELSE percentage END FROM inventory 选择products、amount、CASE WHEN percentage

我有一个SELECT查询,如果百分比值小于100,我想在百分比值中加一个负号。我的问题是:

SELECT produces, amount, percentage FROM inventory
我试过:

SELECT produces, amount, CASE WHEN percentage<100 THEN '-'+percentage ELSE percentage END FROM inventory

选择products、amount、CASE WHEN percentage如果要反转符号,只需将其与-1多倍。

由于百分比列是某种类型的数字,而不是字符串,您需要将其转换为varchar,类似这样的操作应该可以:

SELECT produces, amount, CASE WHEN percentage < 100 THEN '-' + CAST(percentage AS varchar(50)) ELSE CAST(percentage AS varchar(50)) END FROM inventory
选择百分比<100时的产量、金额、大小写,然后“-”+转换(百分比为varchar(50))或转换(百分比为varchar(50))从库存结束
下面是一个工作示例:

CREATE TABLE inventory (produces int, amount int, percentage int)

INSERT INTO inventory values(1, 1, 110)
INSERT INTO inventory values(2, 2, 100)
INSERT INTO inventory values(3, 3, 90)
INSERT INTO inventory values(4, 4, 80)

SELECT
    produces, 
    amount, 
    CASE 
        WHEN percentage < 100 
        THEN '-' + CAST(percentage AS varchar(50)) 
        ELSE CAST(percentage AS varchar(50)) 
    END
FROM
    inventory
创建表库存(生成整数、金额整数、百分比整数)
插入库存值(1、1、110)
插入到库存值中(2,2100)
插入库存值(3、3、90)
插入库存值(4、4、80)
挑选
生产,
数量
案例
当百分比<100时
然后'-'+CAST(百分比为varchar(50))
ELSE CAST(百分比为varchar(50))
结束
从…起
库存

我只需要将小于100的值放在负号上,大于100的任何值都应该是正数。然后选择所有小于100的值,将它们乘以-1,并将它们与正的restGood并集,简单而精确。如果百分比是一个数字字段,您需要将其强制转换为VARCHAR,然后才能对其执行文本操作。@tkvo…错误消息是什么?什么不起作用?它在'ELSE'之前一直说语法错误