Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL选择查询中追加字符_Sql_Oracle - Fatal编程技术网

在SQL选择查询中追加字符

在SQL选择查询中追加字符,sql,oracle,Sql,Oracle,我是SQL新手。我有一个银行项目,在一个表中有这样的值 Type Amount ----- ------- Credit 5000 Debit 2000 Debit 1000........... so on 现在我需要获取这些列。使用Select语句我可以获取,但是我需要为借记的金额添加“-”,为贷记的金额添加“+”(如借记“-2000”…),为贷记的金额添加“+” 如何使用Select查询在“金额”列中追加这些函数。 请帮我解决这个问题。您可以在案例

我是SQL新手。我有一个银行项目,在一个表中有这样的值

Type    Amount  
-----  -------

Credit   5000    
Debit    2000

Debit    1000........... so on
现在我需要获取这些列。使用Select语句我可以获取,但是我需要为借记的金额添加“-”,为贷记的金额添加“+”(如借记“-2000”…),为贷记的金额添加“+”

如何使用Select查询在“金额”列中追加这些函数。
请帮我解决这个问题。

您可以在
案例中执行此操作
对账单检查借方类型,然后对金额应用-1:

SELECT
Type,
CASE WHEN Type='Debit' THEN (Amount*(-1)) ELSE Amount END AS Value
FROM Table

您可以在检查借方类型的
案例
对账单中执行此操作,然后对金额应用-1:

SELECT
Type,
CASE WHEN Type='Debit' THEN (Amount*(-1)) ELSE Amount END AS Value
FROM Table

要分别显示借方和贷方的-1000和+2000金额,应将这些金额表示为“字符串”

select
    Type,
    case
        when Type = 'Credit' then '+' + convert(varchar, Amount)
        else '-' + convert(varchar, Amount)
    end as Amount
from
    tab

要分别显示借方和贷方的-1000和+2000金额,应将这些金额表示为“字符串”

select
    Type,
    case
        when Type = 'Credit' then '+' + convert(varchar, Amount)
        else '-' + convert(varchar, Amount)
    end as Amount
from
    tab

您也可以使用decode而不是case

将带符号的值打印为字符串

select decode(type,'Debit','-','+')||amount as value from tab;
将值保留为数字但带符号

select decode(type,'Debit',-1*amount,amount) as value from tab;

您也可以使用decode而不是case

将带符号的值打印为字符串

select decode(type,'Debit','-','+')||amount as value from tab;
将值保留为数字但带符号

select decode(type,'Debit',-1*amount,amount) as value from tab;

谢谢你宝贵的回复谢谢你宝贵的回复