【问题标题】:SQL query advice .. writing a query with pattern matchingSQL 查询建议 .. 使用模式匹配编写查询
【发布时间】:2013-09-11 17:12:21
【问题描述】:

伙计们,

我在 MSSQl 表中有一列如下:

| email |
-----------
suzuki@amc.com
yamaha@abc.co
harley@cbc.com
....

我想编写一个查询,将所有字段中“@”之前的所有内容替换为单个工作“汽车”。所以该列应该看起来:

| email |
-----------
cars@amc.com
cars@abc.co
cars@cbc.com
....

关于如何形成此查询的任何建议?

【问题讨论】:

    标签: sql-server-2008


    【解决方案1】:

    你试试这个, 首先从邮件 id 中仅选择 before @ 部分 使用这个substring_index(email,'@',1)

    然后用汽车替换

    replace(email,substring_index(email,'@',1),'cars')
    

    select replace(email,substring_index(email,'@',1),'cars') from table;
    

    【讨论】:

      【解决方案2】:

      查询:

      SQLFIDDLEExample

      UPDATE Table1 
      SET email = 'cars' + 
              SUBSTRING(email, CHARINDEX('@',email), LEN(email)-CHARINDEX('@',email)+1)
      

      【讨论】:

        【解决方案3】:

        这里已经讨论了许多解决此问题的示例:

        How do I replace a substring of a string before a specific character?

        例如:

        UPDATE YourTable set email = 'cars' + SUBSTRING(email, CHARINDEX('@',email), LEN(email))
        

        【讨论】:

          猜你喜欢
          • 2021-10-05
          • 1970-01-01
          • 2022-01-15
          • 1970-01-01
          • 2011-05-20
          • 2017-06-18
          • 2020-10-04
          相关资源
          最近更新 更多