利用SQL Server赋值给列新的值
在利用SQL Server进行数据处理时,有时会需要给表中的某一列赋新的值。这时可以使用SQL语句中的UPDATE命令,来更新表中的数据。
UPDATE命令的语法
UPDATE命令的语法格式如下:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
其中,table_name是要更新的表名,column1、column2等是要更新的列名,value1、value2等是要更新的新值。UPDATE命令还可以使用WHERE关键字来指定更新的条件。如果不指定WHERE条件,则将所有行的数据都进行更新。
示例
以下是一个示例,演示如何使用UPDATE命令将表中的某一列赋新的值:
UPDATE employees
SET salary = 50000
WHERE department = 'Sales';
这个示例中,将employees表中department列的值为'Sales'的行的salary列的值设为50000。
使用函数给列赋新的值
除了直接指定新值之外,还可以使用SQL Server的一些函数来给列赋新的值。这些函数包括:
CONCAT:连接两个或多个字符串。
LEFT:返回字符串左侧的指定数目的字符。
RIGHT:返回字符串右侧的指定数目的字符。
LOWER:将字符串转换为小写。
UPPER:将字符串转换为大写。
LEN:返回字符串的长度。
REPLACE:替换字符串中指定的字符或子字符串。
SUBSTRING:返回字符串的一个子字符串。
示例
以下是一个示例,演示如何使用函数给列赋新的值:
UPDATE employees
SET email = CONCAT(first_name, '.', last_name, '@company.com')
WHERE department = 'IT';
这个示例中,将employees表中department列的值为'IT'的行的email列的值设为由first_name列、last_name列和固定的'@company.com'字符串拼接而成的新字符串。
使用CASE语句给列赋新的值
在UPDATE命令中,还可以使用CASE语句来根据不同的条件给列赋不同的值。
示例
以下是一个示例,演示如何使用CASE语句给列赋新的值:
UPDATE employees
SET bonus = CASE
WHEN salary > 50000 THEN 5000
WHEN salary > 40000 THEN 4000
ELSE 3000
END
WHERE department = 'Sales';
这个示例中,将employees表中department列的值为'Sales'的行的bonus列的值根据salary列的值进行不同的设置。如果salary大于50000,则设置bonus为5000;如果salary大于40000,则设置bonus为4000;否则设置bonus为3000。
总结
在SQL Server中,使用UPDATE命令可以方便地更新表中的数据。除了直接指定新值之外,还可以使用函数和CASE语句来根据不同的条件给列赋不同的值。