【问题标题】:Rename SQL Server 2005 Row Values重命名 SQL Server 2005 行值
【发布时间】:2014-08-25 12:03:54
【问题描述】:

我想重命名我表上的几个值。

我只想在我的数据库中的表的列中重命名多行:

SJ.10.06.000001
SJ.10.06.000002
SJ.10.06.000003
SA.10.06.000001
SB.10.06.000002

等到这个值:

SJ.09.06.000001
SJ.09.06.000002
SJ.09.06.000003
SA.09.06.000001
SB.09.06.000002

我的 SQL:

Update dbo.Deposito 
set nomor sj.09... 
where no rekening sj.10...

我有这个:

Update dbo.Deposito 
set nomor sj.09... 
where no rekening sj.10...

错误

[Err] 42000 - [SQL Server]'sj' 附近的语法不正确。

【问题讨论】:

  • 表格的布局是怎样的?这是不同列中的单个值还是多个值?
  • set nomor sj.09... where no rekening sj.10 这不是最不有效的 sql 语法

标签: sql sql-server rename sql-server-2005-express


【解决方案1】:

试试这个....

UPDATE dbo.Deposito 
 SET nomor =  REPLACE(nomor, '.10.', '.09.')
WHERE SUBSTRING(nomor, 4, 2) = '10'

【讨论】:

    【解决方案2】:

    我认为你也可以使用 substring 来做到这一点,但我不记得正确的语法,所以我认为你应该试试这个。

    它会根据您表中的第 3 和第 4 个字符更新值,因此如果您想要的话,它会交换 10 到 9。

    有很多方法可以实现这一点,这只是其中之一。

    更新

    我已经在本地测试过,它可以工作。

    UPDATE
        dbo.Deposito
    SET
        nomor = REPLACE(nomor,'.10.','.09.')
    WHERE
        substring(nomor,4,2) = '10'
    

    【讨论】:

    • 当我尝试你的时,我得到了这个结果 [Err] 42000 - [SQL Server]关键字“RIGHT”附近的语法不正确。
    • 这与 M. Ali 的答案相同。但是,谢谢你的帮助^_^
    猜你喜欢
    • 2010-11-18
    • 1970-01-01
    • 2010-09-14
    • 2012-10-03
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多