需要澄清 SQL Server 数据类型和运算符

Sar*_*nan 0 sql-server

我想确认以下关于基本 SQL 查询的信息:

  1. float 和 real 数据类型不能与 sql 中的 equals 和 not equals 运算符一起使用。如果是这样,那么我还可以对这些数据类型使用什么运算符。

  2. 不允许基于 BLOB 和 XML 列进行过滤。那么我们是否应该禁用基于这些数据类型的任何搜索,还有其他无法从sql查询中过滤的数据类型吗?

[编辑] 3. 另外,我可以对时间戳数据类型使用什么样的运算符。

gbn*_*gbn 5

  1. 不真实。您可以使用它们,但“近似”性质意味着它们可能不可靠。
    使用范围查询(BETWEEN 等)或使用小数

  2. 如果您使用最大类型(不推荐使用文本、图像等),那么您可以根据需要进行 CAST 或 SUBSTRING 等来搜索和过滤
    对于 XML,您可以使用 XQuery 进行搜索
    注意:无法搜索作为 word 文档等的二进制 BLOB在 SQL Server 中

  3. 从来没有尝试过。时间戳(已弃用,使用 rowversion)不是为了被操纵而设计的
    ,除非您指的是作为日期时间函数的日期时间