【问题标题】:Convert varchar into numeric in SQL Server stored procedure在 SQL Server 存储过程中将 varchar 转换为数字
【发布时间】:2017-07-31 12:41:47
【问题描述】:

我正在为INSERT 编写一个存储过程,我想将varchar 列转换为数字,所以当我编写此代码时

CONVERT(NUMERIC(18,2), CAST([Outcost] AS FLOAT))

然后它会抛出这个错误

关键字“CONVERT”附近的语法不正确。

这是我的查询

INSERT INTO dbo.UdtEquipmentsStaging
        ([Type], [ModelID], [AccessoryID], [Make], [Model], [Category], 
         [CategoryDescription], [Grouping], [Item], [RequiredModel], [SKU], [ProductNum],
         [Speed], [Description], [Cost], [Cost2], [Cost3], [Cost4], [Cost5], 
         CONVERT(NUMERIC(18,2), CAST([Outcost] AS FLOAT)), [MSRP], 
         [Discontinued], [PercentMSRP], [ServiceType], [ServiceTypeColor],
         [ConnectivityFee], [ConnectFee], [InstallFee], [Notes], [ManufactureNotes]
        , [Special1], [Special2], [Special3], [Special4], [Special5], [Special6], [Special7], [Special8], [Special9], [Special10], [Special11], [Special12], [Special13] 
        , [Special14], [Special15], [Special16], [Special17], [Special18], [Special19], [Special20], [Special21], [Special22], [Special23], [Special24], [Special25] 
        , [Special26], [Special27], [Special28], [Special29], [Special30], [Special31], [Special32], [Special33], [Special34], [Special35], [Special36], [Special37] 
        , [Special38], [Special39], [Special40])
    SELECT 
        [Type], [ModelID], [AccessoryID], [Make], [Model], [Category], 
        [CategoryDescription], [Grouping], [Item], [RequiredModel], [SKU], [ProductNum],
        [Speed], [Description], [Cost], [Cost2], [Cost3], [Cost4], [Cost5], 
        [Outcost], [MSRP], [Discontinued], [PercentMSRP], [ServiceType], [ServiceTypeColor],
        [ConnectivityFee], [ConnectFee], [InstallFee], [Notes], [ManufactureNotes],
        [Special1], [Special2], [Special3], [Special4], [Special5], [Special6], [Special7], [Special8], [Special9], [Special10], [Special11], [Special12], [Special13] 
        , [Special14], [Special15], [Special16], [Special17], [Special18], [Special19], [Special20], [Special21], [Special22], [Special23], [Special24], [Special25] 
        , [Special26], [Special27], [Special28], [Special29], [Special30], [Special31], [Special32], [Special33], [Special34], [Special35], [Special36], [Special37] 
        , [Special38], [Special39], [Special40]
    FROM 
        @Equipments

这是准确的错误

消息 102,级别 15,状态 1,过程 ImportEquipmentFile_UDT,第 27 行
“Outcost”附近的语法不正确。

【问题讨论】:

  • 您使用的是哪个数据库平台?
  • 您应该在SELECT 中使用CONVERT 而不是在列表列中。
  • @DavidLindon Sql 服务器
  • @Rokuto 那么如何在插入时将varchar转换为数字。

标签: sql stored-procedures varchar user-defined-types sql-convert


【解决方案1】:

insert 中的列列表仅包含列名。值在select

INSERT INTO dbo.UdtEquipmentsStaging
        ( [Type], [ModelID], [AccessoryID], [Make], [Model], [Category], [CategoryDescription], [Grouping], [Item], [RequiredModel], [SKU], [ProductNum]
        , [Speed], [Description], [Cost], [Cost2], [Cost3], [Cost4], [Cost5], [Outcost], [MSRP], [Discontinued], [PercentMSRP], [ServiceType], [ServiceTypeColor]
        , [ConnectivityFee], [ConnectFee], [InstallFee], [Notes], [ManufactureNotes]
        , [Special1], [Special2], [Special3], [Special4], [Special5], [Special6], [Special7], [Special8], [Special9], [Special10], [Special11], [Special12], [Special13] 
        , [Special14], [Special15], [Special16], [Special17], [Special18], [Special19], [Special20], [Special21], [Special22], [Special23], [Special24], [Special25] 
        , [Special26], [Special27], [Special28], [Special29], [Special30], [Special31], [Special32], [Special33], [Special34], [Special35], [Special36], [Special37] 
        , [Special38], [Special39], [Special40])
 SELECT [Type], [ModelID], [AccessoryID], [Make], [Model], [Category], [CategoryDescription], [Grouping], [Item], [RequiredModel], [SKU], [ProductNum]
        , [Speed], [Description], [Cost], [Cost2], [Cost3], [Cost4], [Cost5], CONVERT(NUMERIC(18,2), CAST([Outcost] AS FLOAT)), [MSRP], [Discontinued], [PercentMSRP], [ServiceType], [ServiceTypeColor]
        , [ConnectivityFee], [ConnectFee], [InstallFee], [Notes], [ManufactureNotes]
        , [Special1], [Special2], [Special3], [Special4], [Special5], [Special6], [Special7], [Special8], [Special9], [Special10], [Special11], [Special12], [Special13] 
        , [Special14], [Special15], [Special16], [Special17], [Special18], [Special19], [Special20], [Special21], [Special22], [Special23], [Special24], [Special25] 
        , [Special26], [Special27], [Special28], [Special29], [Special30], [Special31], [Special32], [Special33], [Special34], [Special35], [Special36], [Special37] 
        , [Special38], [Special39], [Special40]
 FROM @Equipments

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2016-06-22
    • 2013-10-10
    • 2020-03-10
    • 1970-01-01
    相关资源
    最近更新 更多