[笔记]流行数据库SQL差异分析之“不从实体表中取得数据”
2010-11-30 06:54
330 查看
不从实体表中取得数据
有的时候我们需要查询一些不能从任何实体表中能够取得的数据,比如将数字1作为结果集或者计算字符串“abc”的长度。
解决方案1:
SELECT 1 FROM T_Employee //但是会出现多条1,根据数据表记录。
SELECT DISTINCT 1 FROM T_Employee //可以只出现1条,但不完美。
MYSQL和MSSQLServer允许使用不带FROM子句的SELECT语句来查询这些不属于任何实体表的数据:
SELECT 1
还可以在不带FROM子句的SELECT语句中使用函数,比如下面的SQL将字符串“abc”的长度作为结果集:
SELECT LENGTH('abc') //MYSQL,结果为3。
SELECT LEN('abc') //MSSQLServer
还可以在SELECT语句中同时计算多个表达式,比如下面的SQL语句将1, 2, 3, 'a', 'b','c'作为结果集:
SELECT 1,2,3,'a','b','c'
在Oracle中是不允许使用这种不带FROM子句的SELECT语句,不过我们可以使用Oracle的系统表来作为FROM子句中的表名,系统表是Oracle内置的特殊表,最常用的系统表为DUAL。比如下面的SQL将1以及字符串‘abc’的长度作为结果集:
SELECT 1, LENGTH('abc') FROM DUAL
在DB2中也同样不支持不带FROM子句的SELECT语句,它也是采用和Oracle类似的系统表,最常用的系统表为SYSIBM.SYSDUMMY1。比如下面的SQL将1以及字符串’abc‘的长度作为结果
集:
SELECT 1, LENGTH('abc') FROM SYSIBM.SYSDUMMY1
有的时候我们需要查询一些不能从任何实体表中能够取得的数据,比如将数字1作为结果集或者计算字符串“abc”的长度。
解决方案1:
SELECT 1 FROM T_Employee //但是会出现多条1,根据数据表记录。
SELECT DISTINCT 1 FROM T_Employee //可以只出现1条,但不完美。
MYSQL和MSSQLServer允许使用不带FROM子句的SELECT语句来查询这些不属于任何实体表的数据:
SELECT 1
还可以在不带FROM子句的SELECT语句中使用函数,比如下面的SQL将字符串“abc”的长度作为结果集:
SELECT LENGTH('abc') //MYSQL,结果为3。
SELECT LEN('abc') //MSSQLServer
还可以在SELECT语句中同时计算多个表达式,比如下面的SQL语句将1, 2, 3, 'a', 'b','c'作为结果集:
SELECT 1,2,3,'a','b','c'
在Oracle中是不允许使用这种不带FROM子句的SELECT语句,不过我们可以使用Oracle的系统表来作为FROM子句中的表名,系统表是Oracle内置的特殊表,最常用的系统表为DUAL。比如下面的SQL将1以及字符串‘abc’的长度作为结果集:
SELECT 1, LENGTH('abc') FROM DUAL
在DB2中也同样不支持不带FROM子句的SELECT语句,它也是采用和Oracle类似的系统表,最常用的系统表为SYSIBM.SYSDUMMY1。比如下面的SQL将1以及字符串’abc‘的长度作为结果
集:
SELECT 1, LENGTH('abc') FROM SYSIBM.SYSDUMMY1
相关文章推荐
- [笔记]流行数据库SQL差异分析之“自动增长字段”
- [笔记]流行数据库SQL差异分析之“限制结果集行数”
- 流行数据库SQL差异分析之“限制结果集行数”
- 主流数据库的SQL语法差异分析
- 数据建模学习笔记-3-《高质量数据库建模 3-实体》
- pl/sql入门第四章--数据库数据对象分析(上)
- Oracle Database 11g SQL 开发指南学习笔记:从数据库中检索数据
- 本人开发系统--新生报到与数据统计管理系统--数据库设计及相关查询SQL语句笔记
- pl/sql入门第五章--数据库数据对象分析(下)
- 【数据库学习笔记】Oracle_01_sql*plus,存储结构,用户管理,常用数据类型
- 笔记:读取sql文件,然后将数据批量插入数据库
- sql数据自动完全备份数据库实体
- 主流数据库复制表结构(SqlServer/Mysql/Oracle/Sybase)[语法差异分析]
- 数据库笔记3————关系数据库标准语言SQL上(SQL的数据定义和数据更新)
- java中util日期与sql日期互相转换 实现前端日期数据传入servlet存入数据库
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 改写
- 比较同一数据库不同版本间数据表之间差异
- MySQL笔记(一)创建数据库并插入数据
- 使用SQL语句从数据库一个表中随机获取数据
- 几种流行的数据库SQL分页