select client.clientname ,description,'client2'= case when client.Description IS NULL then  client.clientname when ltrim(rtrim(client.Description))='' then client.clientname else client.clientname +' - '+ client.Description end from T_CSC_ClientMaste…
文章目录 NULL 即是空 三值逻辑 空值比较 NOT IN 与空值 函数与空值 DISTINCT.GROUP BY.UNION 与空值 ORDER BY 与空值 空值处理函数 字段约束与空值 SQL 是一种声明式的语言,我们只需要描述想要的结果(WHAT),而不关心数据库如何实现(HOW):虽然 SQL 比较容易学习,但是仍然有一些容易混淆和出错的概念. 今天我们就来说说 SQL 中的空值陷阱和避坑方法,涉及的数据库包括 MySQL.Oracle.SQL Server.PostgreSQL 以…
Oracle中奇怪的[不等于号]   在Oracle中,不等号有三种:<>,!=,^= 例如: select * from test where name<>'xn'.返回的结果是name不为xn,且name不空的记录.但是这与我们想要得到的结果有出入,因为我们的目的是得到name为xn的全部记录,当然这也包括name为空的记录,所以这些写SQL语句是有问题的.为了解决这个问题,我们可以采用以下两种方案: select * from test where instr(concat(…
题目 找出数组中两个数的和等于sum的这两个数 解题 这个题目做过很多次了,利用HashMap,key为 sum-A[i] value为 i 当 加入HashMap时候A[i] 已经存在map中,get(A[i]) 就是前一个数的下标,A[i]就是第二个数 之前做的 import java.util.HashMap; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scann…
SQL中的连接可以分为内连接,外连接,以及交叉连接 . 1. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积: 举例,下列A.B.C 执行结果相同,但是效率不一样: A:SELECT * FROM table1 CROSS JOIN table2 B:SELECT * FROM table1,table2 C:select * from table1 a inner join table2 b A:select a…
SQL中的Null深入研究分析 虽然熟练掌握SQL的人对于Null不会有什么疑问,但总结得很全的文章还是很难找,看到一篇英文版的, 感觉还不错. Tony Hoare 在1965年发明了 null 引用, 并认为这是他犯下的“几十亿美元的错误”. 即便是50年后的今天, SQL中的 null 值还是导致许多常见错误的罪魁祸首. 我们一起来看那些最令人震惊的情况. Null不支持大小/相等判断 下面的2个查询,不管表 users 中有多少条记录,返回的记录都是0行: select * from u…
深入详解SQL中的Null NULL 在计算机和编程世界中表示的是未知,不确定.虽然中文翻译为 “空”, 但此空(null)非彼空(empty). Null表示的是一种未知状态,未来状态,比如小明兜里有多少钱我不清楚,但也不能肯定为0,这时在计算机中就使用Null来表示未知和不确定. 虽然熟练掌握SQL的人对于Null不会有什么疑问,但总结得很全的文章还是很难找,看到一篇英文版的, 感觉还不错. Tony Hoare 在1965年发明了 null 引用, 并认为这是他犯下的“几十亿美元的错误”.…
1.模糊查询效率很低:原因:like本身效率就比较低,应该尽量避免查询条件使用like:对于like '%...%'(全模糊)这样的条件,是无法使用索引的,全表扫描自然效率很低:另外,由于匹配算法的关系,模糊查询的字段长度越大,模糊查询效率越低.解决办法:首先尽量避免模糊查询,如果因为业务需要一定要使用模糊查询,则至少保证不要使用全模糊查询,对于右模糊查询,即like '-%',是会使用索引的:左模糊like'%...'无法直接使用索引,但可以利用reverse + function index…
前面的几篇文章中,我们大体上介绍了 SQL 中基本的创建.查询语句,甚至也学习了相对复杂的连接查询和子查询,这些基本功相信你也一定掌握的不错,那么本篇则着重介绍几个技巧方面的关键字,能够让你更快更有效率的写出一些 SQL. 起别名 在实际的项目中,有时候我们的表名.字段名过于复杂以致于我们的 SQL 写出来过长.过于复杂,这时候我们往往会通过起别名的方式将一些名字较长.较为复杂的字段或是表名简化. 我们可以使用别名(Alias)来对数据表或者列进行临时命名,既然是别名,也就是说并不会修改原表或列…
单个字段多个字段查询 查询员工姓名 *注:在SQL语句中不区分大小写:SQL语句以“:”分号结束 select ename from emp; 注:select询句后面跟的是字段名称,select是关键字,select和字段名称之间采用空格隔开,from表示将要查寻的表,它和字段之间采用空格隔开 查寻员工编号和员工姓名 *注:多个字段查询时,字段与字段之间用“,”隔开 select empno,ename from emp; 查询全部字段 我们可以将所有字段放到  select  询句之后,这种…