更改表合并列T-SQL

时间:2016-02-29 09:51:42

标签: sql sql-server tsql

我需要改变表格的物理结构。

将2列合并为整个表的单个列。

E.g

for(int i = 0; i< (1<< (N - 1)); i++)
  for(int j = 0; j < (1 << (N - 1)); j++)
      if(number of bit set i + j == k)
         calculate the maximum sum;

应该是

ID  Code  Extension
1   012   8067978

3 个答案:

答案 0 :(得分:2)

您可以在select语句中将它们一起添加:

SELECT Column1 + Column2 AS 'CombinedColumn' FROM TABLE

永久地将它们添加到一起:

第1步。Add Column

   ALTER TABLE YOUR_TABLE
     ADD COLUMN Combined_Column_Name VARCHAR(15) NULL

步骤2.合并字段

   UPDATE YOUR_TABLE
     SET Combined_Column_Name = Column1 + Column2

如果您想保持表格完整,您只需通过view访问表格信息。

CREATE VIEW View_To_Access_Table
AS
   SELECT t.Column1, t.Column2, etc....
           t.CombinedColumn1 + t.CombinedColumn2 AS 'CombinedColumnName'
   FROM YOUR_TABLE t

如果您不想创建视图,也可以创建computed column

ALTER TABLE YOUR_TABLE
  ADD COLUMN CombinedColumn AS Column1 + Column2

答案 1 :(得分:1)

ALTER TABLE DataTable ADD FullNumber VARCHAR(15) NULL
GO

UPDATE DataTable  SET FullNumber = ISNULL(Column1, '') + ISNULL(Column2, '')
GO

-- you may have FullNumber as NOT NULL, if the number is mandatory and not null for every record
ALTER TABLE DataTable ALTER COLUMN FullNumber VARCHAR(15) NOT NULL

第一步创建列,第二步创建字符串串联,同时处理空值(如果有)。

在删除旧列之前,您应该考虑它们的用法。如果您需要某些报告中的任何数字,则拆分字符串比实际存储该值更难。但是,这也意味着冗余(更多空间,可能的一致性问题)。

答案 2 :(得分:0)

您可以先将列合并为一列,然后执行以下步骤: -

@Controller

重命名该列并从表中删除多余的列。 确保该列的数据类型为varchar。