sql-server - 在连接子句上将数据类型 varchar 转换为数字时出错
问题描述
请帮助解决这个问题。我得到一个
在我的联接子句中将数据类型 varchar 转换为数字时出错。
select
MARKETING
,HOME_TEL
,BUS_TEL
,CEL_TEL
,EMAIL
,FAX
,VALID_MAIL
,VALID_PHONE
,VALID_SMS
,VALID_EMAIL
into [storagedb - baw].dbo.Geyser_Glynis
from [storagedb - Mariana].dbo.HOC_Geyser_v2 as a
left join [IIIDB].[dbo].[EEE_BASE_201901] as b
on a.gcustomer_Number= b.Dedupe_Static
解决方案
执行这 2 个查询以查找您尝试连接在一起但不能转换为数字的值:
SELECT
T.gcustomer_Number
FROM
[storagedb - Mariana].dbo.HOC_Geyser_v2 AS T
WHERE
TRY_CAST(T.gcustomer_Number AS NUMERIC) IS NULL
SELECT
T.Dedupe_Static
FROM
[IIIDB].[dbo].[EEE_BASE_201901] AS T
WHERE
TRY_CAST(T.Dedupe_Static AS NUMERIC) IS NULL
您必须删除或更新它们才能正确转换为数字,或者,如果其中一列可能包含非数字值,则必须将数字列转换为VARCHAR
,例如:
from
[storagedb - Mariana].dbo.HOC_Geyser_v2 as a
left join [IIIDB].[dbo].[EEE_BASE_201901] as b on
CONVERT(VARCHAR(100), a.gcustomer_Number) = b.Dedupe_Static
请注意,对索引列应用转换或函数将使索引不适用,并且很可能以全表扫描结束。
推荐阅读
- excel - 我需要计算开始日期和结束日期之间的差异,不包括周末和联邦假日,响应格式为 H:MM
- java - 错误:无法初始化主类 Lucene_workspace.Class_Indexer
- r - 函数在本地闪亮的应用程序中工作,但在发布到闪亮的服务器时返回错误的值
- ios - Swift UI Firebase AddSnapShotListeners
- java - 在 Clojure 中调用非静态 Java 方法
- django - 在 Django 中使用自定义用户模型总是在模板中返回匿名用户
- python - 如何更改 Qthread 内的 Qtimer 的间隔?
- javascript - 从 axios 响应对象渲染一个对象数组
- java - 可以使用 minecraft “versions” 文件夹创建/运行外部 JAR 文件吗?
- office-js - 无法在 Excel 任务窗格中获取角色(在 Windows 10、1903 上)WebView/3.0