SQLServer2008ALTERTABLE连接
我需要将2个int和一个varchar列连接到SQLServer2008ALTERTABLE连接,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我需要将2个int和一个varchar列连接到plan\u no中,这样看起来就像这样 非常感谢您的帮助。您需要进行转换: 您可以更改您的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)) + '-' +fo
plan\u no
中,这样看起来就像这样
非常感谢您的帮助。您需要进行转换:
您可以更改您的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;
我们可以尝试在此处使用
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);
我认为您希望更新当前表中的数据:
UPDATE TableName
SET plan_no = cast(lot as nvarchar(50)) + '-' + forester + '-' + cast([year] as nvarchar(50))
请注意:如果lot、forester或year列可以包含空值,则需要通过
ISNULL()
function将两个整数转换为varchar,然后Concate谢谢,但我需要将数据插入列计划中\n这也可以,但我需要将其插入column@ScottSmith不,实际上你不应该。创建一个计算列来执行此操作,它将自动合并对“支持”列所做的任何更改。在你做之前,仔细考虑你的要求。当批次>9999时会发生什么情况?当批次<1000时会发生什么情况?如果需要固定长度的格式,则需要进行适当的计划。
UPDATE TableName
SET plan_no = cast(lot as nvarchar(50)) + '-' + forester + '-' + cast([year] as nvarchar(50))