TeradataSQL函数用法
Teradata SQL函数用法
2008-06-22 3:02
LIKE用法
select first_name,last_name from employee where last_name like all('%E%','%S%');
select first_name,last_name from employee where last_name like any/some('%E%','%S%');
Teradata缺省不区分大小写,如果要区分,可以使用其扩展参数CASESPECIFIC
select first_name,last_name from employee where last_name(CASESPECIFIC) like '%Ra%';
通配符作为一般字符使用
例:
LIKE "%A%%AAA__" ESCAPE"A"
在这个表达式中,讲字母A定义为ESCAPE字符,其中:
第一个%为通配符:
第一个A和其后的%联合表示字符%
第三个%为通配符
第二个A和其后的A联合表示字符A;
第四个和其后的'_'联合表示字符_
最后一个'_'为通配符
NULL的使用
当进行升序排列时,NULL在数字列排列在负数前,在字符排列在空格前
优先级和括号
逻辑运算符的缺省优先级顺序从高到低为:NOT.AND.OR
NOT
NOT既可以否定操作符,也可以否定条件表达式
否定操作符:
select first_name,last_name,employee_number from employee where department_number not =301;
否定条件:
SELECT first_name,last_name,employee_number FROM employee WHERE NOT(department_number=301);
字符型数据
在ANSI标准中关于字符型数据定义了两类:CHAE和VARCHAR,Teradata除了上述两类基本字符数据外,还扩展了LONG VARCHAR类型,它等同于VARCHAR(64000),是最长的字符串
char(size)固定长度的字符串最大长度:64000字节
trunc函数使用时间varchar(size)
char varying(size)
character varying(size) 这三个是可变长度字符串,最大长度:64000字节
long varchar 等同于varchar(64000)
二进制数据
二进制数据类型是Teradata的扩展,ANSI标准没有此类型
BYTE(size) 固定长度的二进制串默认值:(1)最大值:64000字节
varbyte(size) 可变长的二进制串默认值:(1)最大值:64000字节
数字型数据
在ANSI标准中关于数字型数据定义了四类:SMALLINT.INTEGER.FLOAT.DECIMAL,Teradata还扩展了BYTEINT和DATE
smallint 整数 范围:-32768~32767
integer 整数 范围:-2147483648~2147483647
decimal(size,dec) 小数 最大:18位
numeric(precision,dec)  decimal的同义词
float  表示浮点数
float[(precision)] 通float
real  同float
double precision 双精度浮点数
byteint 有符号整数 范围-128~127
date 特殊整数,格式为YYMMDD或yyymmdd表示日期
图形数据
graphic[(n)] 固定长度的图形字符串默认长度:1
vargraphic(n) 可变长的图形字符串
long vargraphic 可变长的图形字符串
算术运算符
**(求幂)
mod(取模)
系统变量
date当前系统日期
time系统时间
user当前登陆的用户
database当前缺省的数据库
字符常量.数字常量和计算模式
字符文字在ANSI方式下区分大小写,而在Teradata缺省模式下不区分大小写
数字型常量最多可以包含15个数字,数字前面的零是无意义的
计算模式是指在SQL的SELECT语句中直接进行数学计算,如下:
select 2*2593;
日期计算
例:1997年3月31日的表达方式
year=(1997-1900)*10000=970000
month=(3*100)=300
day=31
date=970331
于日期有关的数据函数
1.EXTRACT
ANSI标准中EXTRACT函数允许选取日期和时间中任意段或任意间隔的值,Teradata中EXTRACT函数支持日期数据中选取年.月.日.从时间数据中选取小时.分钟和秒
SELECT DATE;  96/11/07
SELECT EXTRACT(YEAR FROM DATE);    1996
SELECT EXTRACT(MONTH FROM DATE+30); 12
SLEECT EXTRACT(DAY FROM DATE+2);  09
SELECT TIME;  14:52:32
SELECT EXTRACT(HOUR FROM TIME); 14
SELECT EXTRACT(SECOND FROM TIME+30);  INVALID TIME
2.ADD_MONTHS
利用CAST作数据转换
ANSI标准中利用CAST函数将一种数据类型转换成另一种数据类型
select cast(salary_amount as integer) from employee;
select cast(salary_amount as dec(6,0)) from employee;
select cast(last_name as char(5)) from employee where department_number=401;
Teradata也可以利用CAST函数来完成上面的操作,另外,它也作了扩充.为了完成上面相同的操作,也可以使用下面的表达方式
select salary_amount(integer);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。