SQL查询初学者指南读书笔记(三)值表达式

26、SQL 函数与值表达式的使用指南 本博客详细介绍了SQL中函数与值表达式的使用方法,包括数值值表达式、CASE值表达式、CAST值表达式以及特殊值的应用。通过实际示例讲解了如何使用这些功能进行数据处理和操作,并结合项目实践加深理解。此外,还提供了常见问题解答、相关概念解析以及学习建议,帮助读者全面掌握SQL函数与值表达式的应用。 阅读详情

CHAPTER 5 Getting More Than Simple Columns


Intro Value  expression,it contains column names, literal values, functions, or other value

expressions

 

The type of data

The SQL Standard defines seven general categories of types of data—character,

national character, binary, numeric, Boolean, datetime, and interval.

 

The national character data type is the same as the character data type except that it draws its characters from ISO-defined foreign language character sets.

 

BOOLEAN数据类型可以使用TINYINT存储.

 

CAST

Changing Data Types


 

data_type需要查看具体数据库实现文档,比如MySQL

The type for the result can be one of the following values:

  • BINARY[(N)]
  • CHAR[(N)]

 

源文档 <http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast>

 

比如

SELECT OrderNumber, OrderDate, ShipDate,

CAST(ShipDate– OrderDate AS INTEGER)

AS DaysElapsed

FROM Orders

 

在MySQL中需要转为

 

SELECT OrderNumber, OrderDate, ShipDate,

CAST(ShipDate- OrderDate AS DECIMAL)

AS DaysElapsed

FROM Orders

 

Literal Value

分为字符串常量值,数值常量值和日期常量值.

 

如果使用单引号包含字符串,字符串中包含单引号,字符串中的单引号请使用两次以示与引用的单引号区别开来.

SQL 'The Vendor"s name is: '

Displayed as The Vendor's name is:

 

Types of Expressions

 


 

CONCATENATION

SQL字符串串接


 

❖ Note Of the major database systems,we found that only IBM’s DB2 and

Informix and Oracle’s Oracle support the SQL Standard operator for concatenation.

Microsoft Office Access supports & and + as concatenation

operators,Microsoft SQL Server and Ingres support +, and in MySQL you

must use the CONCAT function. In all the examples in the book,we use the

SQL Standard || operator. In the sample databases on the CD,we use the

appropriate operator for each database type (Microsoft Access, Microsoft

SQLServer, and MySQL).

 

由上图可知SQL标准字符串串接用||,但是在MySQL使用会被当作逻辑运算符。MySQL使用concat内建函数串接字符串。而有的数据库使用直观的+串接字符串.

 

DATE AND TIME ARITHMETIC

MySQL需要将日期常量值转为相应类型再做计算,另外需要使用相应的日期函数计算

CAST('2016-11-22'AS DATE)

CAST('03:30:25'AS TIME)

CAST('2008-09-2914:25:00' AS DATETIME)

 

比如

SELECT StfLastName || ', ' || StfFirstName AS Staff,

DateHired,

CAST(CAST('2007-10-01'- DateHired AS INTEGER)

/365 AS INTEGER)

AS YearsWithSchool

FROM Staff

ORDER BY StfLastName, StfFirstName

 

在MySQL中转为

 

SELECT CONCAT(StfLastName , ', ' , StfFirstName) AS Staff,

DateHired,

CAST(DATEDIFF(CAST('1990-01-11'AS date) , DateHired )/365 as decimal)

AS YearsWithSchool

FROM Staff

ORDER BY StfLastName, StfFirstName

 

 

That"Nothing" Value:Null


判断Value Expression是否为NULL的时候请不要使用ValueExpression = NULL,这是常犯的小错误.

14、SQL高级值表达式与谓词详解 本文深入解析了SQL中的高级值表达式和谓词,包括CAST表达式、行值构造器、表值构造器、数组值构造器的使用,以及各种谓词(如比较谓词、IN、LIKE、NULL、EXISTS、UNIQUE、MATCH)的功能和应用。通过示例详细说明了它们在数据操作和查询中的具体用法,帮助开发者更灵活地处理复杂的数据查询和筛选场景。 阅读详情

相关推荐

19、高级 SQL 查询表达式深入解析

本文深入解析了SQL中的查询表达式与查询规范,详细介绍了表组合、查询基础、查询规范的语法和特性,以及GROUP BY和HAVING子句的使用。同时涵盖了子查询、SQL:1999高级特性如CUBE、ROLLUP和递归查询等内容,帮助读者更好地掌握复杂SQL查询的编写与优化。

s3t4u的博客 67

MySQL中的查询过滤条件where

查询wherelike(模糊查询)%下划线(_)and,or,notbetween and别名表达式 where 首先创建一个表并添加如下数据,在下述查询中均用到此表 create table student( id char(36) primary key, name varchar(8) not null, age int(3) default 0, mobile char(11), addr...

YXX_decsdn的博客 3237

10、SQL查询与逻辑表达式的深入解析

本文深入解析了SQL查询中与逻辑表达式相关的多种操作,重点介绍了TOP n查询、TOP n WITH TIES、TOP n PERCENT以及SET ROWCOUNT选项的使用场景和区别。同时,文章详细探讨了逻辑表达式的基本概念、真值表、NULL值处理方式以及短路特性,并结合实际案例展示了逻辑表达式在复杂查询、权限管理和数据验证中的应用。最后,文章总结了相关操作的最佳实践和建议,帮助开发者提升SQL查询的效率和准确性。

sugar的博客 72

数据库查询过滤条件

本功能中函数用于oracle中,其他数据库根据思想自行百度。 问题描述: 在bug修复中发现前辈,条件过滤不充分,为了不破坏原sql结构。尽量加条件。过滤条件,除了and、or、if、group by 、having这些字段。还有一个差集、交集、并集、in、not in。 过滤介绍: 1、其他常用,不做介绍。in和not in有局限,首先in的容量好像不可以放操作1000条数据,如果你的过滤条件会随着时间变化而增加,不要使用in,其二使用in会涉及sql优化失效。 2、当需要过滤的条件有很多值,可以和原来表

m0_45226909的博客 2352

【VSCode】【Clangd】从零构建:基于LLVM/Clangd+MINGW+CMake的Windows高性能C/C++开发环境实战

本文详细介绍了如何在Windows平台搭建基于LLVM/Clangd+MINGW+CMake的高性能C/C++开发环境。通过VSCode配置Clangd语言服务器,结合MINGW提供的GCC工具链和CMake的跨平台构建能力,实现轻量级、高效率的开发体验。文章包含从环境准备到实战配置的完整指南,特别适合追求开发效率和跨平台兼容性的开发者。

weixin_28839629的博客 311

先进封装技术的一些优缺点探讨

半导体封装技术是半导体制造过程中的关键环节,它不仅保护了芯片免受物理损伤,还提供了电气连接和散热功能。随着技术的发展,出现了多种先进的封装技术,每种技术都有其特定的应用场景和优缺点。

阿拉伯梳子的专栏 2169

4.5 正则表达式过滤查询数据

正则表达式用来匹配更加复杂的查询条件,例如你想从文件中提取电话号码,想从查找名字中间有数字的所有文件,甚至在一个文本块中查找所有重复的字符,都可以使用正则表达式完成;但是在此处,我们只介绍MySql中正则表达式的使用,具体关于正则表达式的内容,大家可以自行学习;MySql 用WHERE子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤SELECT查询出的数据;

蟑螂恶霸的博客 1428

RC正弦波振荡电路实验全解析:如何通过调节电容电阻改变输出频率

本文深入解析RC正弦波振荡电路,重点阐述如何通过调节电容和电阻来精确改变输出频率。文章从文氏桥振荡电路的核心原理出发,详细介绍了电容粗调频段与电阻微调频率的实操策略,并分析了元件误差、寄生参数等对实测频率的影响,为电路设计与调试提供了从理论到实践的完整指南。

yhn456789的博客 1113

如何在REST API中使用查阅项的值作为过滤条件

原文地址:点击打开链接

shrenk的专栏 3339

【STM32实战】利用STM32CubeMX配置PWM互补输出驱动电机

本文详细介绍了如何利用STM32CubeMX配置STM32高级定时器的PWM互补输出功能,以驱动电机等需要半桥/全桥电路的应用。通过图形化界面设置定时器参数、使能互补通道并配置关键的死区时间,结合代码示例演示了如何启动PWM输出和动态调整占空比,确保输出安全、精确的互补信号,避免MOS管直通风险,提升驱动可靠性。

weixin_29161785的博客 535

Embedding理解及keras中Embedding参数详解,代码案例说明

Embedding理解 嵌入层将正整数(下标)转换为具有固定大小的向量 ------官网 词嵌入是一种语义空间到向量空间的映射,简单说就是把每个词语都转换为固定维数的向量,并且保证语义接近的两个词转化为向量后,这两个向量的相似度也高。 举例说明embedding过程: “Could have done better” 通过索引对该句子进行编码,每个单词分配一个索引,上面的句子就会变成这样: 122 8 114 12 创建嵌入矩阵,即每一个索引需要分配多少维向量,也就是说每个词需要转化为多少维

wo的博客 1万+

QueryBuildRange使用值及表达式过滤

希望各位可以提供更多的资料来完善本帖. 在开始使用QueryBuildRange进行与、或、等于等关系时,并不是想象中那么简单,本文章结合网络上的资料和我自己的实践总结了一些queryBuildRange值及表达式的使用方法。一.      单一值作为过滤条件,如Select inventtable where itemid = “aa”可以使用如下代码static voi

Reboot 2383

OSError We couldn‘t connect to https://huggingface.co to load file, couldn‘t find it chatglm3-6b解决方案

本文主要介绍了OSError: We couldn’t connect to https://huggingface.co to load this file, couldn’t find it in the cached files and it looks like THUDM/chatglm3-6b is not the path to a directory containing a file named config.json.解决方案,希望能对学习python的同学们有所帮助。

weixin_43178406的博客 5万+

PostgreSQL教程(六):SQL语法(二)之值表达式

值表达式被用于各种各样的环境中,例如在SELECT命令的目标列表中、作为INSERT或UPDATE中的新列值或者若干命令中的搜索条件。为了区别于一个表表达式(是一个表)的结果,一个值表达式的结果有时候被称为一个标量。值表达式因此也被称为标量表达式(或者甚至简称为表达式表达式语法允许使用算数、逻辑、集合和其他操作从原始部分计算值。一个值表达式是下列之一:一个常量或文字值一个列引用在一个函数定义体或预备语句中的一个位置参数引用一个下标表达式一个域选择表达式一个操作符调用。

mr~li的博客 1265

使用pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集

superpoint与superglue的组合可以实现基于深度学习的图像配准,官方发布的superpoint与superglue模型均基于coco数据训练,与业务中的实际数据或许存在差距,为此实现基于开源的pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集。然而,在训练pytorch-superpoint有诸多细节需要优化,特此整理成技术文档。本文档描述了实验pytorch-superpoint与pytorch-superglue项目训练自己的图像配准模型。

a486259的博客 9504

PT:pt write_change to innovus 脚本

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1526

postgresql sql 语法,值表达式

4.2.值表达式 4.2.1. 列引用 4.2.2. 位置参数 4.2.3. 下标 4.2.4. 域选择 4.2.5. 操作符调用 4.2.6. 函数调用 4.2.7. 聚集表达式 4.2.8. 窗口函数调用 4.2.9. 类型转换 4.2.10. 排序规则表达式 4.2.11. 标量子查询 4.2.12. 数组构造器 4.2.13. 行构造器 4.2.14. 表达式计算规则 值表达式被用于各种各样的环境中,例如在SELECT命令的目标列表中、作为INSERT或UPDAT.

m0_51063580的博客 520

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Kingbase-SQL语法2-值表达式

值表达式被用于各种各样的环境中,例如在 SELECT 命令的目标列表中、作为 INSERT 或 UPDATE 中的 新列值或者若干命令中的搜索条件。为了区别于一个表表达式(是一个表)的结果,一个值表达式的结果有 时候被称为一个标量。值表达式因此也被称为标量表达式(或者甚至简称为表达式)。表达式语法允许使用 算数、逻辑、集合和其他操作从原始部分计算值。

zhygo2019的博客 1314

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SQL——行值表达式(Row Value Expressions)

概述 最近接触了一个新概念——行值表达式,也叫做行值构造器。这是一个很强大的SQL功能,通常我们所操作的SQL表达式都只能针对一行中的单一字段进行操作比较,而行值表达式可以针对一行中的多个字段进行操作比较。 它在SQL:92的标准里就被定义过,但到目前为止,也并不是所有数据库都支持,并且每个数据库支持程度不一致。 这列出了几个支持行值表达式的数据库: DB2 HSQLDB ...

diaoxie19780718的博客 664

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

postgresql笔记010-值表达式

值表达式 值表达式用在各种语法环境中,比如在select命令的目标列表中,在insert, update 中用作新的列值,或者在许多命令 的搜索条件中使用。我们有时候把值表达式的结果叫做标量,以便于一个表达式的结果相区分。因此值表达式也叫作 标量表达式。表达式语法允许对来自基础部分的数值进行算术,逻辑,集合和其他运算。 值表达式具体实现如下: 一个常量或者字面值 一个字段引用 一个位置参数引用(在函数声明体中或预编写的语句中) 一个下标表达式 一个字段选择表达式 一个操作符调用 一个函数调用 一个聚合表达式

609

postgresql-值表达式

聚集表达式 一个聚集表达式代表一个聚集函数对一个查询选出的行的处理。 一个聚集函数把多个输入缩减为一个输出值, 比如给输入求和或平均。一个聚集表达式的语法是下列之一: aggregate_name (expression) aggregate_name (ALL expression) aggregate_name (DISTINCT expression) aggregate_nam...

深未来技术 301

二、 SQL 语言4. SQL语法4.2. 值表达式4.3. 调用函数

值表达式和调用函数

weixin_44231698的博客 440

【EF Core】 EF Core 原生SQL查询深度解析

在EF Core中使用原生SQL执行查询本身不是一种常见的使用案例。但是当我们面对要去执行数据报表这类非常复杂的查询逻辑,其中来回关联了很多张表,并且执行过程中创建了很多临时表。这种查询是很难用 LINQ 方法语法来表示的,即使可能能使用和SQL语句类似查询语法,但也会非常复杂。另外一种就是EF Core翻译出来的SQL执行效率很低,也会碰到使用原生SQL执行查询这种场景。在使用关系型数据库时,EF Core 允许直接使用 SQL 查询。

Arabys的博客 2106

DM_SQL语言支持的表达式

官方文档直达:[1.5 DM_SQL 语言支持的表达式 | 达梦技术文档 (dameng.com)](https://eco.dameng.com/document/dm/zh-cn/pm/dm_sql-introduction.html#1.5 DM_SQL 语言支持的表达式)

沉梦听雨的博客 664

数据库——SQL 中(数据查询)

目录 一、单表查询 1.1选择表中的若干列 1.1.1查询指定列 1.1.2查询全部列 1.1.3查询经过计算的值 1.1.4使用列别名改变查询结果的列标题 1.1.5更名运算 1.2选择表中的若干元组 1.2.1消除取值重复的行 1.2.2查询满足条件的元组 1.3 ORDER BY子句 1.4聚集函数 1.5 GROUP BY子句 二、多表查询 2.1等值连接与自...

享受孤独 1万+
上一篇: SQL查询初学者指南读书笔记(二)创建SQL查询
下一篇: SQL查询初学者指南读书笔记(四)where从句
soliddream66
博客等级 码龄19年 93粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值