我需要编写一个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
列
答案 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
类似的谓词会根据您的要求而改变。