Sql server 我正在SQL Server中运行脚本并获得';将数据类型varchar转换为数字时出错;
我正在尝试运行下面的脚本Sql server 我正在SQL Server中运行脚本并获得';将数据类型varchar转换为数字时出错;,sql-server,Sql Server,我正在尝试运行下面的脚本 SELECT (ISNULL(AMOUNT, '') + '-' + ISNULL(TRAN_ID, '') + '-' + ISNULL(CONVERT(VARCHAR(8), TRAN_DATE, 112), '-')) AS TRAN_ID_NEW, ID, ACCOUNT_STATUS, ACCT_BAL, ACCT_BAL_DATE, AMOUNT, AUTH_IP_ADDRESS, BRANCH_ID
SELECT
(ISNULL(AMOUNT, '') + '-' + ISNULL(TRAN_ID, '') + '-' + ISNULL(CONVERT(VARCHAR(8), TRAN_DATE, 112), '-')) AS TRAN_ID_NEW,
ID,
ACCOUNT_STATUS,
ACCT_BAL, ACCT_BAL_DATE,
AMOUNT,
AUTH_IP_ADDRESS,
BRANCH_ID,
ENTRY_TIME,
TRAN_CURRENCY,
TRAN_DATE,
TRAN_ID,
TRAN_PARTICULAR,
TRAN_SUB_TYPE, TRAN_TYPE,
VALUE_DATE,
ACCOUNT,
REF_DESC,
ISNULL(REF_DESC, '') + ' ' + ISNULL(TRAN_PARTICULAR, '') + ' ' + ISNULL(AMOUNT, '') AS TRAN_PARTICULAR_NEW
FROM
Txn;
但我有一个错误:
'将数据类型varchar转换为数字时出错'
请提供任何解决方案您不明白的错误是什么?它告诉您问题所在,您正在尝试将
varchar
插入numeric
列,并且varchar
不能隐式转换为numeric
。看看您的SQL,第一个表达式似乎是一个很好的起点。我猜AMOUNT和TRAN_ID都是数字数据类型(int,decimal…)。然后尝试将其添加到varchar中,它将失败。另外,使用ISNULL(SomeInt,'')不会返回空字符串。它将把空字符串隐式转换为0的int。