sql - 当列在位置 2 中包含 1 时排除行而不使用函数
问题描述
我有一列总是 5 位长,每个数字总是 1 或 0。当第二个位置等于 1 时,我需要在 where 子句中排除。例如,要排除 01000但要保留 10010。我目前有:
WHERE (SUBSTRING(field, 2, 1) <> '1') or field IS NULL
如何在不使用 Substring 函数的情况下做到这一点?
编辑:此外,该列是数据库中的 varchar(10) 。这有关系吗?
解决方案
您可以使用like
运算符直接检查该字符:
WHERE field LIKE '_1%' OR field IS NULL
推荐阅读
- node.js - 如何在端口 80 上部署第二台服务器(听 EADDRINUSE :::80)
- vb.net - 如何实现我用 Public Subs 制作的自定义 DLL
- python - 将自定义分隔符添加回 csv?
- scala - Scala 缺少扩展函数的参数类型匿名函数的参数类型必须是完全已知的。(SLS 8.5)
- php - LARAVEL:在结构excel中导出行数据库
- php - PDO lastInsertId() 不打印任何值
- python - ruamel.yaml ReaderError 尝试加载特殊字符时(非空白控件)
- vb.net - Visual Basic Win32_VideoController 拉错显卡
- r - 在 R 中动画填充数据框
- c# - 在 Kentico 中显示 SSRS 报告会导致 ClientID 错误,如何解释记录在案的解决方案?