gpt4 book ai didi

SQL Server select where sql_variant equal 不起作用?

转载 作者:行者123 更新时间:2023-12-01 12:53:28 25 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8 年前关闭。




我正在使用 SQL Server 2008

我有一个名为 varEnteredValue 的专栏数据类型 sql_Variant .

当我执行以下选择语句时,我什么也没得到

SELECT * FROM tblname WHERE varEnteredValue = 1 

请注意,我在此列中有许多值为 1 的值

问题

我该如何解决这个问题?我需要转换数据类型吗?

最佳答案

这里有两个问题:

  • 您需要将值从 SQL_VARIANT 转换至 INT .
  • 您需要注意如何转换值,因为并非列中的每个值都必须转换为 INT ,并且很难预测 SQL Server 是先过滤还是先尝试转换。您需要首先测试该值是否为数字,为此,您必须将其显式转换为字符串。

  • 这是一个可以解决这两个问题的示例:
    WHERE CASE WHEN ISNUMERIC(CONVERT(VARCHAR(32), varEnteredValue)) = 1 
    THEN CONVERT(FLOAT, varEnteredValue) ELSE 0 END = 1;

    你为什么使用 SQL_VARIANT ?

    关于SQL Server select where sql_variant equal 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665257/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com