2

我正在尝试更新我的 sql server 2008 r2 网络版数据库中的行。我需要使用已经在行中的字段并连接?将该字段转换为同一行中另一个字段中的字符串。

这是一个房地产数据库,我有一个名为 mlsnumber 的列,我需要使用 mlsnumber 字段作为另一列中字符串的一部分,同一行称为 photoname。

在这种情况下 mlsnumber =1234567,我需要添加/更新行所以 photoname= photo+mlsnumber+'-01.jpg' (photo1234567-01.jpg)

任何帮助是极大的赞赏。

4

4 回答 4

6

假设表称为照片

update photos set photoname = 'photo' + mIsnumber + '-01.jpg'

如果 misnumber 不是 varchar 你可以做

update photos set photoname = 'photo' + cast(mIsnumber as varchar(10)) + '-01.jpg'

如果错误编号为空,则结果为空,因此可能是

update photos set photoname = 'photo' + coalesce(cast(mIsnumber as varchar(10)),'') + '-01.jpg'

如果您希望过滤更新的记录,还可以添加 where 子句。

此外,如果总是这样,您可以考虑使用视图来检索数据,而不是将其存储在表中,或者使用表中的计算字段。

于 2013-08-24T13:16:37.840 回答
1
update table1 set
   photoname = 'photo' + cast(mlsnumber as nvarchar(max)) + '-01.jpg'
where mlsnumber = 1234567

您也可以在视图中选择它:

create view vw_table1
as
    select
        *,
        'photo' + cast(mlsnumber as nvarchar(max)) + '-01.jpg' as photoname
    from table1
于 2013-08-24T13:16:17.943 回答
1

这是你想要的吗?

UPDATE  t
SET     photoname = 'photo' + CAST(misnumber AS VARCHAR(255)) + '-1.jpg'
WHERE   misnumber = 1234567;

如果要对所有行执行此操作,则只需删除该where子句。

于 2013-08-24T13:16:30.617 回答
1
Update tablename set photoname = 'photo'+mlsnumber+ '-01.jpg'

这将更新每一行,因此请小心更新。如果您想单独测试更新语句,您可能需要使用begin transaction、运行查询、检查结果,然后使用commit或。rollback

如果您需要转换 mlsnumber,请参阅链接http://msdn.microsoft.com/en-us/library/ms187928.aspx

于 2013-08-24T13:17:39.573 回答