SQL查询集合返回为[ null,null ]的问题研究

在Java项目中通过Mybatis查询数据库某个表的部分字段,方回值为list<T> 。有时候会出现 [ null ,null ] 现象。

具体原因是查询SQL只是取部分字段,而且这几个字段是 null。
但对于数据库表的其他字段来说,查询却是有值的,只是恰巧你查询的字段为Null。

执行:SELECT * FROM user2 WHERE name=‘rtr‘;

结果为:
a rtr 2019-02-19
b rtr 2019-02-19

执行:SELECT department_id FROM user2 WHERE name=‘rtr‘

结果为:
null
null

执行:SELECT COUNT(*) FROM
(SELECT department_id FROM user2 WHERE name=‘rtr‘ )AS t

结果为:2。
解决方案:需要查询的几个字段,必须加上不为空判断。

SELECT department_id FROM user2 WHERE NAME = ‘rtr‘ AND department_id IS NOT NULL

结果:null

SELECT
COUNT( )
FROM
( SELECT
FROM user2 WHERE NAME = ‘rtr‘ AND department_id IS NOT NULL ) AS t

结果:0

原文地址:https://blog.51cto.com/10927283/2396339

时间: 2024-10-07 02:32:57

SQL查询集合返回为[ null,null ]的问题研究的相关文章

关于mybatis查询集合返回为[null]的问题

最近项目当中做功能遇到查询集合list为null,判非空却还是进入了非空的判断里面,后面才知道sql查询中 如果你是查询几个字段,必须加上不为空,否则sql查询前面的值是有值得,只是恰巧你查询的字段为Null 在此记录一下 原文地址:https://www.cnblogs.com/jbml-154312/p/8856647.html

Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1

第一篇:官方文档的处理方法,摘自官方 在迁移原先用JDBC/SQL实现的系统,难免需要采用hibernat native sql支持. 1.使用SQLQuery hibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的. Session.createSQLQuery(); 1.1标量查询 最基本的SQL查询就是获得一个标量(数值)的列表. sess.createSQLQuery("SELECT * FROM CATS").list(); sess.createSQL

获取动态SQL查询语句返回值(sp_executesql)

在写存储过程时经常会遇到需要拼接SQL语句的情况,一般情况下仅仅是为了执行拼接后的语句使用exec(@sql)即可. 而今天的一个存储过程却需要获取动态SQL的查询结果. 需求描述:在某表中根据Id值查询Cost值(表名不确定但表结构确定,如下面的Product表) 如果不考虑获取返回值,我们这样写即可: declare @tableName varchar(50) declare @id varchar(10) declare @cost numeric(18,2) declare @sql

Hibernate SQLQuery 原生SQL 查询及返回结果集处理-2

1. 返回List, .setResultTransformer(      Transformers.ALIAS_TO_ENTITY_MAP);将结果转为Map,存放到list中,即list中为若干map对象: 获取可按此方法: for (int i = 0; i < list.size(); i++) {             Map map = (Map) list.get(i);             System.out.println(map.get("table_colu

python MySQL执行SQL查询结果返回字典

写自动化测试的时候我希望执行数据库前置任务,把数据库查询的结果作为请求的参数,但是正常返回结果为列表嵌套里面,这样就会影响到关键字准确的获取,特别的受限于SQL的查询字段的的顺序,所以希望返回的单条数据结果是字典,返回结果为多条数据的时统一存放在列表中便于对数据遍历,同时我在传入参数的时候可以准确的获取关键字: # -*- coding: utf-8 -*- # @Time : 2018/12/30 18:39 # @Author : Hunk # @Email : [email protect

SQL查询集合合并成字符串

有时候需要查询某一个字段,并把查询结果组成一个字符串,则: DECLARE @str varchar(2000) SELECT @str=isnull(@str+',','')+列名 FROM 表名 SELECT @str

atitit。 hb Hibernate sql 查询使用

atitit. hb  Hibernate sql 查询使用 #----------返回list<map>法..这个推荐使用. q.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List li=q.list(); 作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax #------------------默认obje

C# SQL查询结果ToDataTable

最最常用的SQL 查询的返回结果,插入到DataTable 中 //1 连接字符串 string connectionString = "server=127.0.0.1;integrated security=true;database=MSPetShop4"; // = "server=.;uid=sa;[email protected];database=AdventureWorks2012"; // = "server=.;user id=sa;[

Java 获取SQL查询语句结果

step1:构造连接Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123"); step2:构造语句String sql = "select username,password from t_user where