sql-server - 小写 select 的结果并在另一个 select 语句中查找它
问题描述
我有一个选择语句
SELECT EmployeeID
FROM ApplicationStatus
LEFT JOIN Employee ON EmployeeID = email
WHERE role <= 2
GROUP BY EmployeeID
它返回一堆员工输入的电子邮件。它可以是大写、小写或混合大小写。我不知道,也不允许修改数据。
SELECT CustomerID, EventType, EventDateTime, Comments, EmployeeID
FROM ApplicationStatus
WHERE LOWER(EmployeeID) IN LOWER(result from above statement)
ORDER BY EventDateTime;
我觉得我很接近,但我不知道需要什么才能使它们都变成小写(或大写)。我正在使用 SQL Server 2019
解决方案
正如@Stu 和@Larnu 的评论中提到的:如果您正在处理不区分大小写的排序规则,那么您不需要调用Lower()
您的比较,即被HELLO
视为等于hello
.
但是,如果您的排序规则区分大小写,那么您就快到了!
Lower()
可以应用于单个标量值。
您IN Lower(<SELECT statement>)
正在尝试将其应用于set,但这是行不通的。
SELECT CustomerID
, EventType
, EventDateTime
, Comments
, EmployeeID
FROM ApplicationStatus
WHERE Lower(EmployeeID) IN (SELECT Lower(EmployeeID) FROM your_other_query)
ORDER
BY EventDateTime
;
推荐阅读
- mysql - 一列字段如何引用来自两个不同表的 ID?
- clang-tidy - Clang-Tidy 检查别名是否重复相同的检查?
- jhipster - JHipster 使用 Angular 进行外部导航
- amazon-web-services - 最近有没有人处理过 AWS Rekognition 自定义标签?尝试分析通过 CLI(Windows 机器)创建的模型时收到错误
- excel - 使用 excel vba 自动填充 web 表中的列
- javascript - 收到来自 post 请求的 404 错误:邮递员
- python - Python:Reduce() 和函数作为函数的参数
- sql - 如何使用一对一选择两个关系表来创建视图,并用父值填充所有空值 - postgreSQL
- docker - 如何在 docker-machine 中使用本地镜像作为服务
- javascript - 带有反应钩子的多个计数器