RJI*_*IGO 0 mysql sql sql-server
我有一个8位TEXT字段(称为代码),并希望选择"代码mod 3为0".我如何在ms-sql中编写这个where子句,特别是?我相信在其他版本的SQL中查询应该是相同的.谢谢.
首先 - 不要这样做!将标量计算放在where子句中会使它们成为非SARGable,这实际上意味着您无法使用索引并且必须执行表扫描.
其次 - 不要这样做!如果您的任何代码无法转换为INT,那么这将失败.
第三 - 尽管有两个警告,你仍然想要这样做,这是如何:
-- If field is varchar
WHERE CAST(Code AS INT) % 3 = 0
-- If field is TEXT
WHERE CAST(CAST(Code AS VARCHAR(10)) AS INT) % 3 = 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |