Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何像在SQL中一样对文本进行计数?_Sql_Tsql - Fatal编程技术网

如何像在SQL中一样对文本进行计数?

如何像在SQL中一样对文本进行计数?,sql,tsql,Sql,Tsql,如何像在SQL中一样对文本进行计数 IF OBJECT_ID('tempdb..#t') IS NOT NULL DROP TABLE #t Create table #t (message nvarchar(4000), messagedate datetime) insert into #t values ('Column Listing have data error', getdate()) WAITFOR DELAY '00:00:00:02'; insert into #

如何像在SQL中一样对文本进行计数

IF OBJECT_ID('tempdb..#t') IS NOT NULL
    DROP TABLE #t

Create table #t (message nvarchar(4000), messagedate datetime)

insert into #t values ('Column Listing have data error', getdate())
WAITFOR DELAY '00:00:00:02';
insert into #t values ('Column Listing have name error', getdate())
WAITFOR DELAY '00:00:00:02';
insert into #t values ('Column Listing have city error', getdate())

select * from #t

select count(message like 'column%') , max(messagedate) from #t
group by message

将逻辑部分放入子查询中,然后只在主查询中计数

选择Message,COUNTMessage作为MessageCount,MAXMessageDate作为MAXMessageDate 从SELECT Message,messagedate FROM t,其中的消息类似于'column%'a
使用条件聚合按消息分组,但我看不出应该在哪里使用分组:

select 
  sum(case when message like 'column%' then 1 else 0 end) counter, 
  max(messagedate) maxdate
from #t
如果您还希望仅为类似“column%”的邮件指定最大日期,请执行以下操作:

select 
  count(*) counter, 
  max(messagedate) maxdate
from #t
where message like 'column%'
看。 结果:

> counter | maxdate            
> ------: | :------------------
>       3 | 16/04/2019 16:50:25