sqlite 如何添加列并修改其数据?

jtoj6r0c  于 2023-08-06  发布在  SQLite
关注(0)|答案(3)|浏览(218)

我的表:
| 费用| Expenses |
| --| ------------ |
| 二十个| 20 |
| 三十| 30 |
| 一百六十| 160 |
如何添加一个名为savings的列,该列只有正值?
| 费用|节省| Savings |
| --|--| ------------ |
| 二十个|八十| 80 |
| 三十|四十| 40 |
| 一百六十|三百四十| 340 |
| 一百五十|- -一种| - |
我试过:

MODIFY TABLE table_name
 ADD COLUNN column_def (income - expenses);

字符串

4szc88ey

4szc88ey1#

试试这个:ALTER TABLE my_table ADD COLUMN new_column VARCHAR(255); UPDATE my_table SET new_column = 'New Value' WHERE some_condition;

fnx2tebb

fnx2tebb2#

要向现有表中添加名为“Savings”的新列并使用适当的值填充它,可以使用SQL的ALTER TABLE语句添加该列,然后使用CASE语句根据现有的“Income”和“Expenses”列计算节省。
你可以这样做

-- Add a new column named "Savings"    
ALTER TABLE your_table_name ADD COLUMN Savings INT;

-- Update the "Savings" column with the calculated values
UPDATE your_table_name
SET Savings = Income - Expenses;

-- Set negative "Savings" values to 0 (only keep positive values)
UPDATE your_table_name
SET Savings = 0
WHERE Savings < 0;

字符串

检查结果:http://sqlfiddle.com/#!9/bba63d2/1/0
说明:这些SQL语句将首先向表中添加一个名为“Savings”的新列。然后,它将通过从每行的“收入”中减去“费用”来更新“储蓄”列。最后,它会将任何负的“Savings”值设置为0,因此只有正值保留在“Savings”列中。

yh2wf1be

yh2wf1be3#

使用包含CASE表达式的VIRTUAL column

ALTER TABLE
    table_name
ADD COLUMN
    Savings INTEGER AS (
        CASE
            WHEN (Income - Expenses) > 0 THEN
                Income - Expenses
            ELSE
                NULL
        END
    )
;

字符串

相关问题