SQL IN 语句 "inclusiveness"

标签 sql

我不是程序员,但正在努力学习。我是一名护士,需要从数据库中提取用于医疗转诊跟踪的数据。我有一个 GUI 软件,它可以为我构建 JOIN 查询以从数据库中提取内容。我可以在下拉列表中使用的运算符之一是“IN”。推荐文档以由一到三个字母组成的代码存储在表中。例如,已完成的 dentry 转诊的代码是 CDF, dentry 转诊的代码是 D。

我想建立一份报告,以允许其他护士提取所有未完成的转介,因此我想提取“D”而不是“CDF”

如果我使用 IN 作为运算符,并将参数设置为“S”、“D”、“BP”{etc},是否还会提取包含其他更长代码且包含相同字母的记录? (如 CDF、CSR、CBP)

我不想测试它,因为我只能访问生产数据库,而且我不想收集实际的患者记录。预先感谢您的帮助!

最佳答案

假设保存引用代码的列每条记录保存一个且仅一个代码(听起来就是这样),查询应该按您想要的方式运行,并且不会尝试匹配子字符串。

无论如何,IN ('S', 'D', 'BP') 形式的查询不会有匹配子字符串的危险。要在 SQL 中执行子字符串匹配,您必须使用 LIKE 运算符。

如果推荐代码列包含多个以逗号分隔的代码,则此方法不起作用。这是设计数据库时最常见的错误,但如果您使用的产品是商业产品而不是本土产品,我认为这种情况不太可能发生。如果是的话,搜索起来就困难得多。

关于SQL IN 语句 "inclusiveness",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13477985/

相关文章:

mysql - SQL - 基于条件的唯一结果

python - Pandas DataFrame.to_sql() 错误 - 并非所有参数都在字符串格式化期间转换

sql - 这个 SQL 查询应该如何构造? (Postgres)

sql - 更新列时的 Oracle SQL 触发器

java - if语句中的代码突然离开

mysql - SQL - 聚合除组之外的所有内容

.net - 存储过程的 MySQL .NET 连接器问题

mysql - 在sql中创建一个表列作为两列的总和

sql - 如何在两个表上触发?

mysql - 如何选择一件事,如果条件为假,则选择其他事物