Sql 如何基于关键字获取数据
我有一个查询,其中包含创建人、日期、LogAgent、Logcomments等列,如下所示Sql 如何基于关键字获取数据,sql,sql-server,Sql,Sql Server,我有一个查询,其中包含创建人、日期、LogAgent、Logcomments等列,如下所示 Select createdby,Date,LogAgent,Logcomments from ticketsdata where ticketnumber='123456' 如果我这样给出,我得到的数据如下。 但我只需要我已“决定”为“关闭”的行 +-----------+------------+----------+-----------------------------------------
Select createdby,Date,LogAgent,Logcomments from ticketsdata where ticketnumber='123456'
如果我这样给出,我得到的数据如下。
但我只需要我已“决定”为“关闭”的行
+-----------+------------+----------+-------------------------------------------------+
| createdby | Date | LogAgent | Logcomments
+-----------+------------+----------+-------------------------------------------------+
| AAAAA | 12/02/2013 | Ramu | Status changed from 'Resolved' to 'Closed' |
| AAAAA | 12/02/2013 | Ramu | Status changed from 'Researching' to 'Resolved' |
| AAAAA | 12/02/2013 | Ramu | Status changed from 'Hold' to 'Researching' |
| AAAAA | 12/02/2013 | Ramu | Status changed from 'Open' to 'Hold'
+-----------+------------+----------+-------------------------------------------------+
您可以使用上述查询请尝试此操作
表格创建和数据生成-
CREATE TABLE t2
(
ticketnumber VARCHAR(100)
,[createdby] VARCHAR(100)
,[Date] DATE
,LogAgent VARCHAR(100)
,Logcomments VARCHAR(MAX)
)
GO
INSERT INTO T2 VALUES
('123456','AAAAA','12/02/2013','Ramu','Status changed from ''Resolved'' to ''Closed'''),
('123456','AAAAA','12/02/2013','Ramu','Status changed from ''Researching'' to ''Resolved'''),
('123456','AAAAA','12/02/2013','Ramu','Status changed from ''Hold'' to ''Researching'''),
('123456','AAAAA','12/02/2013','Ramu','Status changed from ''Open'' to ''Hold''')
GO
解决方案
select * from T2
where ticketnumber='123456' AND Logcomments Like '%''Resolved'' to ''Closed''%'
输出
/*------------------------
select * from T2
where ticketnumber='123456' AND Logcomments Like '%''Resolved'' to ''Closed''%'
------------------------*/
ticketnumber createdby Date LogAgent Logcomments
------------------------------- ----------- ---------- ----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
123456 AAAAA 2013-12-02 Ramu Status changed from 'Resolved' to 'Closed'
(1 row(s) affected)
@Ganesh answare是正确的,以下是测试:
Declare @table table (
createdby varchar(50),
Dates datetime,
LogAgent varchar(50),
Logcomments nvarchar(max)
)
insert into @table
select 'AAAAA', '12/02/2013', 'Ramu', 'Status changed from ''Resolved'' to ''Closed''' union
select 'AAAAA', '12/02/2013', 'Ramu', 'Status changed from ''Researching'' to ''Resolved''' union
select 'AAAAA', '12/02/2013', 'Ramu', 'Status changed from ''Hold'' to ''Researching''' union
select 'AAAAA', '12/02/2013', 'Ramu', 'Status changed from ''Open'' to ''Hold''' union
select 'BBBBB', '12/02/2013', 'TOTO', 'Status changed from ''Resolved'' to ''Closed'''
Select *
from @table
where Logcomments like '%''Resolved'' to ''Closed''%'
结果如下:
在回答了将近50个问题后,请学会如何设置帖子的格式<代码>像?或者,如果
Logcomments
列值是这样标准化的,那么直接使用它,就像我在问题中提到的那样,我得到了数据。对于同一个票证,我得到了许多行。但是我想要在其中“解析”为“关闭”的行logcomments@MaciejLossqlwhere无法在数据中找到细微的单引号ticketnumber='123456'和日志注释,如%'''Resolved''到''Closed''。此查询似乎有效,不知道为什么它会被删除,但注释中已经有了完美的答案,那么为什么需要输入新答案?这与此处的其他答案有何不同?
Declare @table table (
createdby varchar(50),
Dates datetime,
LogAgent varchar(50),
Logcomments nvarchar(max)
)
insert into @table
select 'AAAAA', '12/02/2013', 'Ramu', 'Status changed from ''Resolved'' to ''Closed''' union
select 'AAAAA', '12/02/2013', 'Ramu', 'Status changed from ''Researching'' to ''Resolved''' union
select 'AAAAA', '12/02/2013', 'Ramu', 'Status changed from ''Hold'' to ''Researching''' union
select 'AAAAA', '12/02/2013', 'Ramu', 'Status changed from ''Open'' to ''Hold''' union
select 'BBBBB', '12/02/2013', 'TOTO', 'Status changed from ''Resolved'' to ''Closed'''
Select *
from @table
where Logcomments like '%''Resolved'' to ''Closed''%'