Sql server 基于SQL Server中的另一列创建新列

Sql server 基于SQL Server中的另一列创建新列,sql-server,Sql Server,快速提问-我想在SQL Server中创建另一列,例如: 原始表格 Type Amount LocNum Chocolate 15 WC-10202-01 Banana 10 WC-35209-22 Vanilla 5 WC-15815-15 理想表格 Type Amount LocNum LocNum2 Chocolate 15

快速提问-我想在SQL Server中创建另一列,例如:

原始表格

Type         Amount     LocNum
Chocolate    15         WC-10202-01
Banana       10         WC-35209-22
Vanilla      5          WC-15815-15
理想表格

Type         Amount     LocNum          LocNum2
Chocolate    15         WC-10202-01     WC-10202
Banana       10         WC-35209-22     WC-35209
Vanilla      5          WC-15815-15     WC-15815
就这么简单:

ALTER TABLE table_name
ADD column_name column-definition;
就这么简单:

ALTER TABLE table_name
ADD column_name column-definition;

您可以使用replace和charindex执行以下操作:

select [Type], [Amount], LocNum, LocNum2 = replace(LocNum,right(LocNum, charindex('-',LocNum,charindex('-',LocNum,1))),'') 
    from yourtable

您可以使用replace和charindex执行以下操作:

select [Type], [Amount], LocNum, LocNum2 = replace(LocNum,right(LocNum, charindex('-',LocNum,charindex('-',LocNum,1))),'') 
    from yourtable

如果确实需要,可以创建一个

altertableyourtable将LocNum2添加为();

但是,除非您出于某种原因需要在此计算上建立索引,否则我建议您将其作为
select
输出的一部分添加。

如果确实需要,您可以创建一个索引

altertableyourtable将LocNum2添加为();

但是,除非出于某种原因需要对此计算编制索引,否则我建议将其作为
select
输出的一部分添加。

因此,我应该在前面加上一个事实,即我对SQL作为一个整体是新手,根据列定义-如何定义我希望保留locnum但忽略最后3个字符?我没有回答您关于如何在表中添加列的问题。剩下的部分很好地满足了您的需求。因此,我应该在前面加上一个事实,即我对SQL作为一个整体是新的,根据列定义-我将如何定义我希望保留locnum,但忽略最后3个字符?我没有回答您关于如何在表中添加列的问题。其余部分很好地满足了您的需要。具体来说,您想从表的值创建另一列吗?或者您不想创建一个新列。如前所述,请使用计算列。我不得不问为什么!如果最后3个字符不是“所需”,为什么要存储它们?如果你必须储存它们,它们是否有你忽略的意义?您是否也在假设LocNum中可能的值的长度和格式?具体来说,您希望从表的值创建另一列?或者您不想创建一个新列。如前所述,请使用计算列。我不得不问为什么!如果最后3个字符不是“所需”,为什么要存储它们?如果你必须储存它们,它们是否有你忽略的意义?您是否也在假设LocNum中可能存在的值的长度和格式?