*46*

You can use the **UPDATE** statement within **PROC SQL** in SAS to update the values in one or more columns of dataset.

Here are the most common ways to use the **UPDATE** statement in practice:

**Method 1: Update Values in Column Based on One Condition**

**proc sql;
update my_data
set var1='new_value'
where var1='old_value';
quit;**

**Method 2: Update Values in Column Based on Multiple Conditions**

**proc sql;
update my_data
set var1 =
case when var1>25 then 100
when var1>20 then 50
else 0
end;
quit;**

The following examples show how to use each method in practice with the following dataset in SAS:

**/*create dataset*/
data my_data;
input team $ position $ points;
datalines;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
;
run;
/*view dataset*/
proc print data=my_data;**

**Example 1: Update Values in Column Based on One Condition**

We can use the following **UPDATE **statement within **PROC SQL** to update each of the values in the team column to be â€˜Atlantaâ€™ where the existing values are equal to â€˜Aâ€™:

/*update values in team column where team is equal to 'A'*/ proc sql; update my_data set team='Atlanta' where team='A'; quit; /*view updated dataset*/ proc print data=my_data;

Notice that each value in the team column that used to be equal to â€˜Aâ€™ is now equal to â€˜Atlanta.â€™

Any values that were not equal to â€˜Aâ€™ in the team column were simply left unchanged.

**Example 2: Update Values in Column Based on Multiple Conditions**

We can use the following **UPDATE **statement within **PROC SQL** to update each of the values in the points column based on several conditions:

/*update values in points column based on multiple conditions*/ proc sql; update my_data set points = case when points>25 then 100 when points>20 then 50 else 0 end; quit; /*view updated dataset*/ proc print data=my_data;

We used the **UPDATE** statement along with a **CASE WHEN** statement to update the values in the points column.

In particular:

- If the existing value in the points column was greater than 25, we updated it to be
**100**. - Else, if the existing value in the points column was greater than 20, we updated it to be
**50**. - Else, we updated the value in the points column to be
**0**.

Note that we only used three conditions in the **CASE WHEN** statement but you can use as many conditions as youâ€™d like.

**Additional Resources**

The following tutorials explain how to perform other common tasks in SAS:

SAS: How to Use LIKE Operator in PROC SQL

SAS: How to Use the IN Operator in PROC SQL

SAS: How to Use the WHERE Operator in PROC SQL