SQL Server 2008更改表串联

时间:2018-07-23 13:00:55

标签: sql sql-server sql-server-2008

我需要将2个整数和一个varchar列连接到plan_no中,以便看起来像这样

enter image description here

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

我们可以尝试在此处使用CONVERT将数字字段转换为文本:

SELECT
    CONVERT(varchar(10), lot) + '-' + forester + '-' +
        CONVERT(varchar(10), year) AS plan_no
FROM yourTable;

如果要更新,请使用:

UPDATE yourTable
SET plan_no = CONVERT(varchar(10), lot) + '-' + forester + '-' +
        CONVERT(varchar(10), year);

答案 1 :(得分:1)

您需要进行转换

select *, cast(lot as varchar(255)) + '-' +forester + '-' +cast([year] as varchar(5)) as plan_no
from table t;

您可以更改您的DDL

alter table t
add plan_no as (cast(lot as varchar(255)) + '-' +forester + '-' +cast([year] as varchar(5)))

编辑:

update t
     set plan_no = cast(lot as varchar(255)) + '-' +forester + '-' +cast([year] as varchar(5))
where plan_no is null;

答案 2 :(得分:0)

我认为您想更新当前表中的数据:

UPDATE TableName
SET plan_no = cast(lot as nvarchar(50)) + '-' + forester + '-' + cast([year] as nvarchar(50))

请注意:如果lot,forester或year列可以包含空值,则需要使用ISNULL()函数包装值