美好的一天每个人。我一直无法提出解决方案并正在寻求任何帮助。我有,我想增加一列的表:SQL - 如何根据表中的多列添加列
ID Time_Stamp Activity_Log
1254 6/1/2013 8:00:00AM 'Ticket was opened by user A'
1254 6/2/2013 8:20:00AM 'Comment was logged by user B'
1254 6/4/2013 8:25:00AM '**Ticket was transferred to Group 1**'
1254 6/7/2013 8:50:00AM 'Comment was logged by user B'
1254 6/11/2013 10:00:00AM 'Comment was logged by user C'
1254 6/12/2013 12:00:00PM '**Ticket was transferred to Group 2**'
7589 6/3/2013 11:00:00PM 'Ticket was opened by user A'
7589 6/5/2013 1:00:00PM 'Comment was logged by user C'
7589 6/7/2013 2:00:00PM 'Resolution provided by user C'
7589 6/11/2013 5:00:00PM 'Ticket resolved by user C'
8526 6/3/2013 7:00:00PM 'Ticket opened by user D'
8526 6/4/2013 2:00:00PM '**Ticket was transferred to Group 2**'
8526 6/5/2013 1:00:00PM 'Comment was logged by user G'
8526 6/8/2013 5:00:00PM '**Ticket was resolved by user C**'
这里就是我想新列,组,看起来像:
ID Time_Stamp Activity_Log Group
1254 6/1/2013 8:00:00AM 'Ticket was opened by user A' NULL
1254 6/2/2013 8:20:00AM 'Comment was logged by user B' NULL
1254 6/4/2013 8:25:00AM '**Ticket was transferred to Group 1**' Group 1
1254 6/7/2013 8:50:00AM 'Comment was logged by user B' Group 1
1254 6/11/2013 10:00:00AM 'Comment was logged by user C' Group 1
1254 6/12/2013 12:00:00PM '**Ticket was transferred to Group 2**' Group 2
7589 6/3/2013 11:00:00PM 'Ticket was opened by user A' NULL
7589 6/5/2013 1:00:00PM 'Comment was logged by user C' NULL
7589 6/7/2013 2:00:00PM 'Resolution provided by user C' NULL
7589 6/11/2013 5:00:00PM 'Ticket resolved by user C' NULL
8526 6/3/2013 7:00:00PM 'Ticket opened by user D' NULL
8526 6/4/2013 2:00:00PM '**Ticket was transferred to Group 2**' Group 2
8526 6/5/2013 1:00:00PM 'Comment was logged by user G' Group 2
8526 6/8/2013 5:00:00PM '**Ticket was resolved by user C**' Group 2
我想补充这如果Activity_Log是LIKE'%xx%',并且基于ID和Time_Stamp之后的每一行都包含字符串。某些ID在activity_log中将不具有该语言,并且组列对于所有行都将为NULL。对于那些做的,我希望在activity_log开始时LIKE'%转移到组x%',并在activity_log类似于'%转移到组x%'或'%ticket was resolved%'时结束。我试图用OVER(partition by)编写一个查询来区分ID,但我没有成功。
谢谢
那么......计算列?另外,哪个DBMS是这样的? [tag:sql]有点太模棱两可了。附:根据表的大小,您可能只需添加一个普通列,通过一次运行解析器,然后使用触发器来保持新列同步。计算/计算的列在增加的开销方面可能非常密集。 –
应该编写这个“组”列是应用程序代码而不是数据库的责任?看起来应用程序代码具有正确设置所需的所有信息。 –