1

SELECT クエリがあり、パーセンテージ値が 100 未満の場合はマイナス記号を付けたいと考えています。クエリは次のとおりです。

SELECT produces, amount, percentage FROM inventory

私は試した:

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

しかし、うまくいきませんでした。

4

2 に答える 2

2

符号を反転したい場合は、単純に -1 を掛けます。

于 2013-04-12T18:04:29.567 に答える
1

パーセンテージ列は文字列ではなく何らかの数値であるため、varchar にキャストする必要があります。次のように動作するはずです。

SELECT produces, amount, CASE WHEN percentage < 100 THEN '-' + CAST(percentage AS varchar(50)) ELSE CAST(percentage AS varchar(50)) END FROM inventory

これが実際の例です:

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
于 2013-04-12T18:07:31.040 に答える