获取分组后取某字段最大一条记录 方法一:(效率最高) select * from test as a where typeindex = (select max(b.typeindex) from test as b where a.type = b.type ); 方法二:(效率次之) select a.* from test a, (select type,max(typeindex) typeindex from test group by type) b where a.type = b
在11G以下版本中oracle有自带的函数wm_concat可以实现,如: select wm_concat(id) from table where col='1' 但是在12C版本中此函数无法使用,但可以使用另一种方式实现,如: select xmlagg(xmlparse(content upper(id)||',' wellformed) order by id).getclobval() from table where col='1' 该函数返回结果为一个Blob类型的大字段,且因为
Mysql 的 GROUP_CONCAT 函数默认将查询的结果用逗号拼接并返回一个字符串,如:李四,long,张三 1. 常用方式 select GROUP_CONCAT(user_name) userName from user where type = 1 2. GROUP_CONCAT 结合 IN 的使用 -- 查询指定id对应的name值,返回结果为 name7,name4,name2,name5 order by field(org_id,0,7,4,2,5)表示按照给定字段的顺
大家都知道用group by的话,select 后面指定的字段必须与group by后面的一致.group by 只有个别字段,如果拿出其他未分组的字段信息呢?在网上搜了下, 总结如下: 使用了group by 之后,就要求select后面的字段包含在group by 或聚合函数里面,这时如果想读取其它字段则无法实现. 将你需要的字段放进max或min函数中,max:支持字符类型.数字类型.select max(id) as id,username,password from usersgrou
serialization returns private properties Are your types marked as [Serializable]? Serializable means that the serializer should serialize all fields - private or public. Try to remove Serializable or else use this line to stop the JSON formatter from
FOR XML PATH('') 将查询结果显示为XML 经常用来将查询结果按逗号分隔后显示至某一字段 select * from Area结果 添加FOR XML PATH('')后 select * from Area FOR XML PATH('') 这是xml格式 将地名用逗号分开放到一个字段 代码: select ',' + F_FullName from Sys_Area FOR XML PATH('') 结果: 使用STUFF去除最前面的','(STUFF([参],[起始位置],[
有时候一张表的一个字段是以逗号分割的一个字符串,分割的数字是明细表的主键id. 关联明细表查询可以这样做: ) ) --这是把areanos字段赋值给@areanos变量 set @areanos='1,2,3' --将拼接的SQL脚本赋值给变量 set @str='select * from area where areano in ('+@areanos+') order by areano' --调用系统存储过程,执行SQL exec sp_executesql @str
1.TREE表: [strID] [int] IDENTITY(1,1) NOT NULL,[strName] [nvarchar](50) NOT NULL, 2.SubInfo CREATE TABLE [dbo].[SubInfo]( [SuBID] [int] NOT NULL, [SubTreeID] [nvarchar](max) NULL, SQL语句为: select a.strID,a.strName from Tree as a where exists(select * f