我有一个选择语句
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
;