0

我从中提取数据的列具有随机分布的数字和字母,我需要两者来区分它们。

示例:207RG0100X(列名为 C1)

我正在尝试将另外两个表与我创建的包含此数据列的临时表连接起来,但我不断收到 varchar to float 转换错误。我知道 float 在数据类型方面优先于 varchar,但我发现的方法包括 ISNUMERIC() 并且由于我的数据同时包含数字和字母,我认为这不会起作用。有什么建议吗?

SELECT CAST([TAXONOMY CODE] AS Varchar(max)) AS Taxonomy, [SPECIALTY CODE] AS ProviderCode INTO #TaxonomyCodes FROM PS.TaxonomyCode WHERE [TAXONOMY CODE] LIKE '%X'

SELECT Taxonomy, ProviderCode, P.ProviderID, ProcedureCode
FROM #TaxonomyCodes TC, Database..ClaimDetail CD, Database..Claim C, Database..Provider P
WHERE TC.ProviderCode = P.PrescriberType1 AND CD.ClaimID = C.ClaimID AND C.ProviderID = P.ProviderId  
4

1 回答 1

1

如果您的数据是字母数字类型,那么您应该将其作为 varchar(xx) 存储在临时表中,而不是浮点类型。如果要组合数据的表在列中具有不同的数据类型,则可以将浮点数强制转换为 CAST (floatColumn as VARCHAR(xx))。除非您发布一些 SQL 查询以提供更好的想法,否则我无能为力。

于 2013-09-23T16:05:06.337 回答