【问题标题】:Changing data types in a view not truly changing?在视图中更改数据类型并没有真正改变?
【发布时间】:2016-08-29 19:24:19
【问题描述】:

我有一个表,其中包含数据类型为 int 的字段“Ticket_Number”。我需要在外部连接中将此字段连接到另一个日志文件表中的“KeyData”字段,该表的数据类型为“varchar(50)”,有时其中包含带有文本的数据,但也包含其中记录的票号我需要连接的表。我尝试在字段上使用“转换”功能,甚至在子视图上已经只提取“类似数字”的数据。但是,即使我尝试连接到已经只提取“类似数字”数据的视图,我仍然会收到转换失败错误。我该怎么办?

【问题讨论】:

  • 您应该首先分享您的视图定义、表结构、示例数据、您遇到的错误以及您的预期结果。
  • 以下帮助我解决了问题。 stackoverflow.com/questions/21984110/…
  • 你可以换个方式ON (KeyData = CONVERT(varchar(50), Ticket_Number))

标签: sql sql-server


【解决方案1】:

您用于连接条件的 VARCHAR 字段中可能存在字符值。 如果您使用的是 SQL Server 2012 版本,请使用 TRYCONVERT 而不是 CONVERT 函数,如下所示。

    On Ticket_Number= TRYCONVERT (int,KeyData)

或者您也可以通过在 where 子句中添加 ISNUMERIC () 函数来消除这些非数字值,如下所示。

     Where ISNUMERIC (KeyData)=1

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多