将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>)正试图将其应用于集合,但这不起作用。

SELECT CustomerID
, EventType
, EventDateTime
, Comments
, EmployeeID 
FROM   ApplicationStatus
WHERE  Lower(EmployeeID) IN (SELECT Lower(EmployeeID) FROM your_other_query)
ORDER
BY EventDateTime
;

最新更新