w3resource

SQL update columns with arithmetical expression

In this page, we are going to discuss how to change the data of the columns with the SQL UPDATE statement using an arithmetical expression.

Example:

Sample table: neworder


To change the value of 'advance_amount' column with a new value as specified -

1. 'ord_amount'*10,

the following SQL statement can be used:

SQL Code:


-- This SQL code updates the 'advance_amount' column in the 'neworder' table based on a calculation using the 'ord_amount' column.
-- UPDATE statement begins
UPDATE neworder
-- Specifies the target table 'neworder' where the data will be updated
SET advance_amount=ord_amount*.10;
-- Sets the value of the 'advance_amount' column to 10% of the value of the 'ord_amount' column for all rows in the 'neworder' table

Explanation:

  • This SQL code uses the UPDATE statement to modify existing records in the 'neworder' table.

  • The UPDATE statement specifies the target table 'neworder' where the update operation will be performed.

  • The SET clause assigns new values to the 'advance_amount' column.

  • The value assigned to 'advance_amount' is calculated as 10% of the value of the 'ord_amount' column for each row. This calculation is done using the expression 'ord_amount * .10'.

Output:

Sql select re-ordering columns

SQL update columns with arithmetical expression and where

In the following, we are going to discuss how to change the data of the columns with the SQL UPDATE statement using arithmetical expression and SQL WHERE clause.

Example:

Sample table: neworder


To update the value of 'advance_amount' with following conditions -

1. new value for 'advance_amount is 'ord_amount'*10,

2. 'ord_date' must be greater than '01-Aug-08',

the following SQL statement can be used:

SQL Code:


-- This SQL code updates the 'advance_amount' column in the 'neworder' table based on a calculation using the 'ord_amount' column, but only for rows where the 'ord_date' column is after '01-Aug-08'.
-- UPDATE statement begins
UPDATE neworder
-- Specifies the target table 'neworder' where the data will be updated
SET advance_amount=ord_amount*.10
-- Sets the value of the 'advance_amount' column to 10% of the value of the 'ord_amount' column for rows that meet the specified condition
WHERE ord_date>'01-Aug-08';
-- Specifies the condition for updating rows: only rows where the 'ord_date' column is after '01-Aug-08' will be affected by the update operation

Explanation:

  • This SQL code uses the UPDATE statement to modify existing records in the 'neworder' table.

  • The UPDATE statement specifies the target table 'neworder' where the update operation will be performed.

  • The SET clause assigns new values to the 'advance_amount' column.

  • The value assigned to 'advance_amount' is calculated as 10% of the value of the 'ord_amount' column for each row.

  • The WHERE clause filters the rows to be updated, ensuring that only rows where the 'ord_date' column is after '01-Aug-08' will be affected by the update operation.

SQL update columns with arithmetical expression and boolean 'AND'

In the following, we are going to discuss how to change the data of the columns with the SQL UPDATE statement using arithmetical expression and SQL WHERE clause and boolean operator AND.

Example:

Sample table: customer1


To change the value of 'outstanding_amt' of 'customer1' table with following conditions -

1. modified value for 'outstanding_amt' is 'outstanding_amt'-('outstanding_amt'*.10),

2. 'cust_country' must be 'India',

3. and 'grade' must be 1,

the following SQL statement can be used :

SQL Code:


-- This SQL code updates the 'outstanding_amt' column in the 'customer1' table, reducing the outstanding amount by 10%, but only for customers in India with a grade of 1.
-- UPDATE statement begins
UPDATE customer1
-- Specifies the target table 'customer1' where the data will be updated
SET outstanding_amt=outstanding_amt-(outstanding_amt*.10)
-- Sets the value of the 'outstanding_amt' column to 90% of its current value for rows that meet the specified condition
WHERE cust_country='India' AND grade=1;
-- Specifies the condition for updating rows: only rows where the 'cust_country' column is 'India' and the 'grade' column is 1 will be affected by the update operation

Explanation:

  • This SQL code uses the UPDATE statement to modify existing records in the 'customer1' table.

  • The UPDATE statement specifies the target table 'customer1' where the update operation will be performed.

  • The SET clause calculates the new value for the 'outstanding_amt' column by subtracting 10% of its current value from itself.

  • The WHERE clause filters the rows to be updated, ensuring that only rows where the 'cust_country' column is 'India' and the 'grade' column is 1 will be affected by the update operation.

SQL update columns with arithmetical expression and comparison operator

In the following, we are discussing, how to change the data of the columns with the SQL UPDATE statement using arithmetical expression and COMPARISON operator.

Example:

Sample table: neworder


To change the value of 'advance_amount' of 'neworder' table with the following condition -

1. modified value for 'advance_amount' is 'ord_amount'*.10,

2. 'ord_date' must be greater than '01-Aug-08',

3. and 'ord_date' must be less than '01-Dec-08',

the following SQL statement can be used:

SQL Code:


-- This SQL code updates the 'advance_amount' column in the 'neworder' table based on a calculation using the 'ord_amount' column, but only for rows where the 'ord_date' column is between '01-Aug-08' and '01-Dec-08'.
-- UPDATE statement begins
UPDATE neworder
-- Specifies the target table 'neworder' where the data will be updated
SET advance_amount=ord_amount*.10
-- Sets the value of the 'advance_amount' column to 10% of the value of the 'ord_amount' column for rows that meet the specified condition
WHERE ord_date>'01-Aug-08' AND ord_date<'01-Dec-08';
-- Specifies the condition for updating rows: only rows where the 'ord_date' column is after '01-Aug-08' and before '01-Dec-08' will be affected by the update operation

Explanation:

  • This SQL code uses the UPDATE statement to modify existing records in the 'neworder' table.

  • The UPDATE statement specifies the target table 'neworder' where the update operation will be performed.

  • The SET clause assigns new values to the 'advance_amount' column.

  • The value assigned to 'advance_amount' is calculated as 10% of the value of the 'ord_amount' column for each row.

  • The WHERE clause filters the rows to be updated, ensuring that only rows where the 'ord_date' column is between '01-Aug-08' and '01-Dec-08' will be affected by the update operation.

See our Model Database

Here is a new document which is a collection of questions with short and simple answers, useful for learning SQL as well as for interviews.

Check out our 1000+ SQL Exercises with solution and explanation to improve your skills.

Previous: Update with condition
Next: Update columns using sum function and group by



Follow us on Facebook and Twitter for latest update.