Sql server 无法将数据类型VARCHAR转换为INT
我无法将数据类型Sql server 无法将数据类型VARCHAR转换为INT,sql-server,Sql Server,我无法将数据类型VARCHAR更改为INT。谢谢你的帮助 CASE WHEN [Worksheet].[Worksheet].[PLC Cd] IS NOT NULL THEN [Worksheet].[Worksheet].[PLC Cd] ELSE (IF ([Pool Number] = 0) THEN ([Worksheet].[Revenue Worksheet].[Account ID]) ELS
VARCHAR
更改为INT
。谢谢你的帮助
CASE
WHEN [Worksheet].[Worksheet].[PLC Cd] IS NOT NULL
THEN [Worksheet].[Worksheet].[PLC Cd]
ELSE (IF ([Pool Number] = 0)
THEN ([Worksheet].[Revenue Worksheet].[Account ID])
ELSE (CAST([Pool Number], VARCHAR(7))))
END
数据类型为Account\u ID
Varchar
数据类型为Pool number
Int
varchar
。我想将帐户ID转换为INT
账户ID数据格式为:500-201-001
注意:由于强制转换
,SQL Server会发出警告:
表达式中的类型转换(CONVERT(varchar(7),[RPT_REVENUE_WKS].[POOL_NO],0])可能会影响查询计划选择中的“CardinalityEstimate”
所以<代码>500-201-001不是数字。可能替换掉这些连字符,然后将其转换为replace(Account_ID,'-','')CASE当[Worksheet].[Worksheet].[PLC Cd]不为空时,则转换为[Worksheet].[Worksheet].[Pool Number]=0,则转换为[Worksheet].[Revenue Worksheet].cast(replace([Account ID],'-','')AS INT)ELSE(转换为INT)(转换为([池号],VARCHAR(7)))结束