zoukankan      html  css  js  c++  java
  • [笔记]流行数据库SQL差异分析之“不从实体表中取得数据”

    不从实体表中取得数据

    有的时候我们需要查询一些不能从任何实体表中能够取得的数据,比如将数字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

  • 相关阅读:
    十七、Java基础之final
    十六、Java基础之super
    十五、Java基础之多态
    十四、Java基础之方法重写/覆盖
    十三、Java基础之单例模式
    十二、Java基础之继承
    十一、Java基础之static关键字
    十、Java基础之this介绍
    九、Java基础之参数传递(值传递)
    利用ResultFilter实现asp.net mvc3 页面静态化
  • 原文地址:https://www.cnblogs.com/astar/p/1891657.html
Copyright © 2011-2022 走看看