Table of ContentsPreviousNext

Ispirer             Ispirer


Ispirer SQLWays数据库迁移软件

条件的表达式

本款描述功能,相比表达式为每个搜索值逐一和返回相应的结果,在各种各样的数据库和它们由SQLWays转换。

表格 33。 条件的表达式
数据库
语句
描述
Oracle
DECODE (comp_exp, 
search_exp1, result_exp1 [, 
search_expN, result_expN]...  
[, default_exp]) 
相比表达式(comp_exp)每个搜索值 (search_exp1, ..., search_expN) 逐一,并如果表达式 (comp_exp) 是相等到搜索值,然后返回相应的结果 (result_exp1, ..., result_expN),如果没有发现匹配则返回缺省的 (default_exp) 或缺省省略,然后返回 NULL。
 
comp_exp, search_expresult_exp 可以是任何数据类型 CHAR, VARCHAR2, NCHAR, 或 NVARCHAR2。返回的字符串是 VARCHAR2的数据类型和在相同的字符定如同第一个结果参数。
 
search_exp, result_expdefault_exp 值可以源自表达式。
 
DECODE功能自动化地转换 comp_exp 和每个搜索值 (search_exp) 到第一搜索值的数据类型比较之前和也自动化地转换返回值的数据类型相同的第一个结果 (result_exp)。如果第一结果有CHAR数据类型或如果第一结果是null,然后t功能转换返回值到VARCHAR数据类型。
 
DECODE功能的考虑两个空值是等价的。如果comp_exp 是null,然后 DECODE返回第一搜索的结果,它也是null。
 
组件的最大数量在DECODE功能包括 comp_exp,搜素 (search_exp1, ..., search_expN),结果 (result_exp1, ..., result_expN),和缺省 (default_exp),是 255。
例如
DECODE (emp_type, 1, `clerk', 2, `book-keeper', `Unknown')
 
CASE comp_exp  
WHEN search_exp1 THEN 
result_exp1 [WHEN 
search_expN THEN 
result_expN]...  
[ELSE default_exp] END 
相比表达式 (comp_exp) 到每个搜素值 (search_exp1, ..., search_expN) 逐一和如果表达式 (comp_exp) 相当于搜索值然后返回相应的结果 (result_exp1, ..., result_expN),如果没有找到匹配则返回缺省的 (default_exp) 或如果缺省省略然后返回NULL。
 
所有表达式 (comp_exp, search_expresult_exp) 必须CHAR, VARCHAR2, NCHAR, 或 NVARCHAR2数据类型。
例如
CASE emp_type
WHEN 1 THEN `clerk'
WHEN 2 THEN `book-keeper'
ELSE `Unknown'
END
CASE WHEN condition_exp1 
THEN result_exp1  
[WHEN condition_expN THEN 
result_expN]...  
[ELSE default_exp] END 
搜索从左到右直至它找到条件的发生 (condition_exp) 这是真的,并然后退回 result_exp。如果没有条件为真,然后退回缺省 (default_exp) 或如果缺省省略然后退回NULL。
例如
CASE WHEN salary>500 THEN salary
WHEN salary<200 THEN 200
ELSE 500
END
MySQL
CASE comp_exp  
WHEN search_exp1 THEN 
result_exp1 [WHEN 
search_expN THEN 
result_expN]...  
[ELSE default_exp] END 
相比表达式 (comp_exp) 到每个搜素值 (search_exp1, ..., search_expN) 逐一和如果表达式 (comp_exp) 相当于搜索值,然后退回相应的结果 (result_exp1, ..., result_expN),如果没有找到匹配则返回缺省的 (default_exp) 或如果缺省省略,然后退回NULL。
 
退回值的类型是一样的第一退回的值得类型(表达式以后第一THEN)。
例如
 
 
CASE workgroup
WHEN A THEN `Administration'
WHEN B THEN `Book-keeping'
WHEN C THEN `Customer department'
ELSE `Others'
END
CASE WHEN condition_exp1 
THEN result_exp1  
[WHEN condition_expN THEN 
result_expN]...  
[ELSE default_exp] END 
搜索从左到右直至它找到条件的发生 (condition_exp) 这是真的,并然后退回 result_exp。如果没有条件为真,然后退回缺省 (default_exp) 或如果缺省省略然后退回NULL。
 
退回值的类型是一样的第一退回的值得类型(表达式以后第一THEN)。
例如
CASE
WHEN salary between 200 and 500 THEN 500
WHEN salary<200 THEN 200
ELSE salary
END
Microsoft SQL Server
CASE comp_exp  
WHEN search_exp1 THEN 
result_exp1 [WHEN 
search_expN THEN 
result_expN]...  
[ELSE default_exp] END 
相比表达式 (comp_exp) 到每个搜素值 (search_exp1, ..., search_expN) 逐一和如果表达式 (comp_exp) 相当于搜索值,然后退回相应的结果 (result_exp1, ..., result_expN),如果没有找到匹配则返回缺省的 (default_exp) 或如果缺省省略,然后退回NULL。
 
退回类型:最高优先级的类型从类型的集合在 result_exp 和可选择的default_exp
例如
CASE level
WHEN 1 THEN `First level'
WHEN 2 THEN `Second level'
WHEN 3 THEN `Third level'
ELSE `Top level'
END
 
CASE WHEN condition_exp1 
THEN result_exp1  
[WHEN condition_expN THEN 
result_expN]...  
[ELSE default_exp] END 
搜索从左到右直至它找到条件的发生 (condition_exp) 这是真的,并然后退回 result_exp. If no condition is found to be true then returning default (default_exp) or if default is omitted then returning NULL.
 
退回类型:最高优先级的类型从类型的集合在 result_exp 和可选择的default_exp
例如
CASE WHEN price IS NULL
THEN 'Not yet priced'
WHEN price < 10
THEN 'Very Reasonable Title'
WHEN price >= 10 and price < 20
THEN 'Coffee Table Title'
ELSE 'Expensive book!'
END
IBM DB2
CASE comp_exp  
WHEN search_exp1 THEN 
{result_exp1 | NULL}  
[WHEN search_expN THEN 
{result_expN | NULL}]...  
[ELSE default_exp] END 
相比表达式 (comp_exp) 到每个搜素值 (search_exp1, ..., search_expN) 逐一和如果表达式 (comp_exp) 相当于搜索值,然后退回相应的结果 (result_exp1, ..., result_expN),如果没有找到匹配则返回缺省的 (default_exp) 或如果缺省省略,然后退回NULL。
例如
CASE credit_limit
WHEN 100 THEN 'Low'
WHEN 5000 THEN 'High'
ELSE 'Medium'
END
CASE WHEN condition_exp1 
THEN {result_exp1 | NULL}  
[WHEN condition_expN THEN 
{result_expN | NULL}]...  
[ELSE default_exp] END 
搜索从左到右直至它找到条件的发生 (condition_exp) 这是真的,并然后退回 result_exp。如果没有条件为真,然后退回缺省 (default_exp) 或如果缺省省略然后退回NULL。
例如
CASE
WHEN1>0 THEN 'true'
ELSE `false'
END


Table of ContentsPreviousNext
Ispirer             Ispirer
版权 © 1999-2015 Ispirer Systems Ltd. Ispirer和SQLWaysIspirer Systems Ltd的品牌。所有其他产品名称可能是其各自公司的商标。版权所有。