如何在SQL中找到子字符串值并复制到另一列中

时间:2017-04-10 09:22:01

标签: sql-server

我需要编写一个SQL语句,其中表内容包括empid,event,date等列。 now事件由一些包含字符串éntry'in的数据组成,第二行包含éxit'in。我知道如何使用alter命令创建新列。但我不知道如何捕获其中包含éntry'oréxit'的事件列数据?有人可以指导我这个问题吗?我的任务是创建一个新列并添加具有ÉNTRY'or'EXIT'in的事件列的子字符串数据?

Empid | Event            | Date
------+------------------+------
  1   | BLOCK-ENTRY      | 01-03-2017
  2   | BLOCK-EXIT-DOOR  | 01-03-2017
  3   | BLOCK-DOOR-ENTRY | 01-03-2017

这是表格式,我创建了一个列

alter table tablename 
    add newevent varchar(10)

在此之后,我必须从事件列中获取ÉNTRY'或''EXIT'值并更新到newevent

2 个答案:

答案 0 :(得分:0)

您可以使用以下SQL查询,它将为您提供'Entry'或'Exit'作为第4列,然后您可以在您的newevent列中使用它。

Select 
    empid,
    event,
    date,
    CASE
      When CHARINDEX('ENTRY', dbo.TableABC.event) > 0 Then 'ENTRY' 
      When CHARINDEX('EXIT', dbo.TableABC.event) > 0 Then 'EXIT' 
    ELSE 'No Event'
    END AS 'Event Type'
 From TableABC

希望这有帮助。

答案 1 :(得分:0)

update yourtablename
set neweventcolumn = case when event like '%ENTRY%' then 'ENTRY' 
when event like '%EXIT%' then 'EXIT' end

类似的谓词会根据您的要求而改变。