目录:
视频: Week 9, continued 2024
一个SQL表达式可能简单或复杂。表达式可以包含字面值,列名,参数,主变量,子查询,逻辑连接符和算术运算符。无论其复杂性如何,表达式必须减少到一个单一的值。
因此,SQL表达式通常被称为 值表达式。 只要组件值表达式减少为具有兼容数据类型的值,就可以将多个值表达式组合到一个表达式中。
<! SQL有五种值表达式:字符串值表达式
-
数值表达式
-
日期时间值表达式
-
间隔值表达式
-
条件值表达式
-
字符串值表达式
最简单的
字符串值表达式 指定单个字符串值。其他可能性包括列引用,集合函数,标量子查询,CASE表达式,CAST表达式或复杂字符串值表达式。
连接运算符。 可以将任何值表达式连接到另一个表达式来创建更复杂的字符串值表达式。一对垂直线(||)表示连接运算符。下表显示了一些字符串值表达式的例子。 表达
产生 | '花生'|| |
---|---|
'脆''999'花生脆'
'果冻'||“|| 999”豆“ |
' Jelly beans''999'FIRST_NAME ||“|| |
LAST_NAME
'Joe Smith' |
B'1100111'|| |
B'01010011'
'110011101010011' |
”| | |
'Asparagus'
'Asparagus' |
'Asparagus'|| |
“
'Asparagus' |
'As'||”|| |
'par' “||
'的AGU' |
'芦笋' |
如果将一个字符串连接到零长度字符串,结果与原始字符串相同。 数字值表达式 |
在 |
可以将加法,减法,乘法和除法运算符应用于数值型数据。表达式必须减少到一个数字值。只要
所有
数据类型都是数字,数值表达式的组成部分可以是不同的数据类型。 结果的数据类型取决于您从中派生结果的组件的数据类型。即便如此,SQL标准并没有严格规定源表达式组件的任何特定组合所产生的类型。这是因为硬件平台之间的差异。混合数字数据类型时,请查看特定平台的文档。以下是数值表达式的一些实例: -27 49 + 83 5 *(12-3)
蛋白+脂肪+碳水化合物
FEET / 5280
-
COST *:multiplierA
-
日期时间值表达式
-
日期时间值表达式
-
对处理日期和时间的数据执行操作。这些值表达式可以包含DATE,TIME,TIMESTAMP或INTERVAL类型的组件。日期时间值表达式的结果始终是日期时间类型(DATE,TIME或TIMESTAMP)。例如,以下表达式给出了距离今天一周后的日期:
-
CURRENT_DATE + INTERVAL'7'DAY
-
时间以协调世界时(UTC)维持 - 在英国称为格林尼治标准时间 - 但是您可以指定一个偏移量以使时间对任何特定的时区都是正确的。对于系统的本地时区,可以使用以下示例中给出的简单语法:
TIME '22:55:00'AT LOCAL
或者,您可以长时间指定此值: TIME '22:55:00'在时区区间'-08。 00'小时
这个表达式将当地时间定义为俄勒冈州波特兰的时区,比英格兰格林威治早8个小时。
间隔值表达式
如果从另一个日期时间中减去一个日期时间,则得到一个
间隔。将一个日期时间添加到另一个是没有意义的,所以SQL不允许你这么做。如果将两个间隔相加或从另一个间隔中减去一个间隔,则结果为间隔。你也可以乘以一个数字常量或者用一个数字常量来区分一个区间。 SQL有两种类型的间隔:
年 - 月
和
日。
为了避免歧义,您必须指定在区间表达式中使用哪一个。例如,以下表达式给出了到达退休年龄之前的年数和月数: (BIRTHDAY_65 - CURRENT_DATE)年至月 以下示例给出了40天的间隔:
INTERVAL '17 'DAY + INTERVAL'23'DAY 下面的例子接近5岁的母亲怀孕的总月数(假设她目前不期待6号): INTERVAL'9'MONTH *间隔可以是负的也可以是正的,并且可以由评估为间隔的任何值表达式或值表达式的组合构成。 条件值表达式 条件值表达式
的值取决于条件。条件值表达式CASE,NULLIF和COALESCE比其他类型的值表达式复杂得多。