将数据类型varchar转换为float,包含字母和数字的数据时出错

时间:2013-09-23 15:58:12

标签: sql-server-2008 tsql

我从中绘制数据的列具有随机分布的数字和字母,我需要两者才能区分它们。

示例:207RG0100X(列名为C1)

我正在尝试使用我创建的临时表来连接另外两个表,这些表保存了这一列数据,但我不断收到varchar到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  

1 个答案:

答案 0 :(得分:1)

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