更新列以从另一列获取第一个字母

时间:2016-09-13 11:53:00

标签: sql sql-server

我想更新我的表来替换/插入INITIALS列,第一个名字列中的第一个字母

表名:Mano

     Title  Firstname    Lastname    Telephone  Inital  Gender   More columns 
1    Mr     Adam             Smith         001      A
2    Mrs    Angela           Evans         002      A
3    Mr     Bill             Towny         003      B
4    Miss   Dame             Beaut         004      D

我有兴趣按照以下方式对其进行转换

+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8                           |
| character_set_connection | utf8                           |
| character_set_database   | utf8                           |
| character_set_filesystem | binary                         |
| character_set_results    | utf8                           |
| character_set_server     | utf8                           |
| character_set_system     | utf8                           |
| character_sets_dir       | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+

非常感谢

4 个答案:

答案 0 :(得分:3)

这看起来很简单update

update t
    set initials = left(firstname, 1);

我应该指出,你甚至不需要专栏。您可以将其声明为计算列:

alter t add initials as (left(firstname, 1));

这将提供一个名为initials的列(假设该名称尚未使用),该列始终具有firstname列的第一个字母 - 没有更新。

答案 1 :(得分:2)


你可以使用子串函数,

SELECT SUBSTR(Firstname, 1, 1) from mango;

希望使用此select语句可以更新表格。

如果您需要更新查询,请告知我们会给您

答案 2 :(得分:1)

添加计算列,永远不会出现不一致:

alter table Mano add Initial as SUBSTR(Firstname, 1, 1)

答案 3 :(得分:0)

左边是最好的,如果我们使用TRIM来防止额外的空格(如果有的话)会更好:

UPDATE TABLE table1 SET Initial = LEFT(LTRIM(Firstname), 1)