簡體   English   中英

什么 T-SQL 查詢會檢索 Email 列的所有值,其中 First_Name 和 Last_ Name 列的值位於 Email 列中?

[英]What T-SQL query would retrieve all values of the Email column where values of First_Name and Last_ Name columns are in the Email column?

有一個包含 3 列的表,“First_Name”、“Last_Name”、“Email”。 Email 列中的某些值包含串聯在一起的 First_Name 和 Last_Name 列值。 即,電子郵件 = 'JohnSmith22@example.com',其中 First_Name = 'John',Last_Name = 'Smith'。

某些行的其他電子郵件值不相關。 即名字 = 'Steven',姓氏 = 'Paul',電子郵件 = 'random12345@example2.com'。 什么查詢只會檢索 Email 列的值,其中 First_Name 和 Last_Name 在列中?

您可以使用like來檢查email是否以名字和姓氏的串聯開頭:

select t.*
from mytable t
where email like first_name + last_name + '%'

如果 name 字段具有異類字符大小寫,則需要將其轉換為lower 並檢查。 另一件事是有時電子郵件中名字和姓氏的順序可能不同,因此您也需要考慮這種情況。

SELECT *
FROM theTable
WHERE lower(email) LIKE '%' + lower(name) + '%' + LOWER(lastname) + '%'
    OR lower(email) LIKE '%' + lower(lastname) + '%' + LOWER(name) + '%'

什么查詢只會檢索 Email 列的值,其中 First_Name 和 Last_Name 在列中?

如果您想要列中的名字和姓氏 - 但也需要其他字符 - 我建議:

where email like '%' + first_name + '%@%' and
      email like '%' + last_name + '%@%'

這會檢查名字和姓氏是否在@之前,以任何順序 - 以及任何其他字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM