oracle认为 null 最大. 升序排列,默认情况下,null值排后面. 降序排序,默认情况下,null值排前面. 有几种办法改变这种情况: (1)用 nvl 函数或decode 函数 将null转换为一特定值 (2)用case语法将null转换为一特定值(oracle9i以后版本支持.和sqlserver类似): 1.当值为某个值的时候,指定排序的时候的位置  select * from (  select 1 t from dual  union all  select 2 t  fro…
   奇怪的慢sql 我们先来看2条sql 第一条: select * from acct_trans_log WHERE  acct_id = 1000000000009000757 order by create_time desc limit 0,10    第二条:  select * from acct_trans_log WHERE  acct_id = 1000000000009003061 order by create_time desc limit 0,10 表的索引及数据总…
mysql 查询结果如果不给予指定的order by ,那么mysql会按照主键顺序(innodb引擎)对结果集加以排序,那么最后的排序可能就不是你想要的排序结果. 举个例子,我要按照前端传过来的mongoId集合来查询数据库并且返回同样排序的结果集合,如(M3,M5,M4),他们对应的主键顺序为(M4,M3,M5).如果在查询语句中不加order by 对查询结果排序,那么结果就会变成主键顺序(M4,M3,M5). 就像上图,最后的结果是按VId排的序.那么如果想要按照(M3,M5,M4)的排…
在某些场合下,我们可能想使用HIBERNATE的框架提供的SQL查询接口,但是,由于实体没有做映射,HIBERNATE不能把结果集转换成你想要的List<POJO>,本文讨论如何在这种情况下让HIBERNATE直接返回你想的结果.下面是简单的查询封装方法 public List<?> findObjectBySql(String queryString,Class<?> pojoClass){ //使用SQL构造查询对象,此SQL是可以被JDBC接受的SQL,如SELE…
--查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 SELECT cols.object_id , cols.column_id , cols.name AS ColumnName , TYPE_NAME(cols.system_type_id) AS ColumnType , cols.max_length , obj.name AS TableName FROM sys.columns cols…
开通博客有一段时间了,第一次博文.本身是个理工科的,没啥文采,就想着把平时遇到的问题记录下来,防止自己以后忘了还要去翻找. 今天看到同事写的代码,查询两张表里的数据,结果集类型是一样的.写了两条查询,还用循环去重,结果写的有点问题,在迭代器里面做了remove操作,报错了.我心想 这种需求应该听常见的吧,肯定有好的解决方案.于是,我就去请教某度了.结果发现,sql果然是厉害的,用union 和union all 就可以解决问题了. 关于union 和 union all 的用法如下: selec…
在项目当中用到Sphinx的时候,很多人遇到了这样的问题:使用mysql+Sphinx检索出了相关度的ID后,如何按照指定ID在Mysql中进行排序呢?这里是我在项目中的解决方法: 1 SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY FIELD(id,5,3,6,1); 或者: 1 SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY substring_index((id,5,…
比如需要对SQL表中的字段NAME进行如下的排序:张三(Z)李四(L)王五(W)赵六(Z) 如果想按 “ 张三.李四.王五.赵六”的顺序排序,则可以使用以下语句: order by charindex(NAME,‘张三李四王五赵六’)…
使用t.rowid,查询可以直接在查询结果中修改提交 SELECT t.rowid,t.* from  UC_ROLE t where ROLE_NAME like '% %'…
declare @str varchar(100)set @str='我要找的' --要搜索的字符串 declare @s varchar(8000)declare tb cursor local forselect 'if exists(select 1 from ['+b.name+'] where ['+a.name+'] like ''%'+@str+'%'')print '' ['+b.name+'].['+a.name+']'''from syscolumns a join syso…