`
- 浏览:
591957 次
- 性别:
- 来自:
杭州
-
外网sql(Coalesce,decode,case when then end )
Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。
-- 1建档
CREATE or replace view WEBADMIN.T_LSJZJD as
select jd.id JD_NM, --NUMBER 8 0 Y 1 内码 长度老表8新表12
jd.jzmc BUILDNAME, --VARCHAR2 50 建筑名称 长度老表50新表200
jd.bhbm BUILD_ID, --VARCHAR2 20 编号 长度老表20新表50
jd.qlrmc SYQR, --VARCHAR2 200 产权人 相同
-- SYQR_DM VARCHAR2 20 产权人代码
jd.zl FW_ADDRESS, --VARCHAR2 500 座落
jd.jznd BUILDTIME, --VARCHAR2 50 建筑年代
jd.jzmj JZ_AREA, --NUMBER 10 2 建筑面积 新表长度9 2
decode(jzjg,0,'钢砼',1,'混凝土',2,'混合',3,'砖混',4,'砖石',5,'砖木',6,'木',7,'石头') || decode(fzjzjg,0,'钢砼',1,'混凝土',2,'混合
',3,'砖混',4,'砖石',5,'砖木',6,'木',7,'石头') STRUCT, --VARCHAR2 20 建筑结构 --number(8)需要关联数据字典
Coalesce(decode(JZLXFL,0,'居住建筑->传统民居',1,'居住建筑->独立式住宅',2,'居住建筑->联排住宅',3,'居住建筑->现代住宅') ,
decode(GGFWJZFL,0,'公共建筑->办公建筑',1,'公共建筑->商业建筑',2,'公共建筑->教育建筑',3,'公共建筑->文体建筑',4,'公共建筑->宗教建筑',5,'公共建筑->宾馆建筑',6,'公共建筑->医疗建筑') ,
decode(GYJZFL,0,'工业建筑->厂房建筑',1,'工业建筑->仓储建筑',2,'工业建筑->宿舍建筑',3,'工业建筑->办公建筑') ,
decode(GZWFL,0,'构筑物->桥梁',1,'构筑物->军事设施',2,'构筑物->亭') ) as STYLE, --VARCHAR2 20 建筑类型 --number(8)需要关联数据字典
decode(bhdj,1,'一级',2,'二级',3,'三级') GRADE, --VARCHAR2 100 等级
jd.fcyt FACT_YT, --VARCHAR2 20 房产用途 长度老表20新表200
jd.fccx FC_CX, --VARCHAR2 20 房产成新
jd.cqrbg SYQR_BG, --VARCHAR2 200 产权人变更
-- PIC_NM NUMBER 8 0 图片内码
-- VIDEO_NM NUMBER 8 0 视频内码
decode(pc,1,'第一批',2,'第二批',3,'第三批',4,'第四批',5,'第五批',6,'第六批','无') GROUPNAME, --VARCHAR2 10 批次
jd.cq_code CQ_NAME, --NUMBER 6 0 城区 长度老表6新表8
jd.fwcqlx FWCQTYPE, --VARCHAR2 400 房屋产权类型
jd.jzjj INTRODUCTION, --VARCHAR2 2000 建筑简介
jd.bhyq SAFEREQUEST, --VARCHAR2 2000 保护要求
jd.bz MEMO, --VARCHAR2 2000 备注
jd.sfwwgs ISNETSHOW, --NUMBER 1 0 是否在外网公示
jd.sfyx ISVALID, --NUMBER 1 0 是否有效
jd.JZWHJQ JD_TYPE, --NUMBER 1 0 历史建筑(1)、历史文化街区(2)
jd.hj ENVIRONMENT, --VARCHAR2 2000 环境
jd.slbh ACCEPT_ID, --VARCHAR2 30 受理编号
jd.xmbm PROINS_ID, --NUMBER 8 0 项目编码
jd.shbz AUDIT_FLAG, --NUMBER 1 0 审核标志(0-未审核1-审核)
jd.shyj AUDIT_NOTE, --VARCHAR2 512 审核意见
jd.jbrid SL_STAFF, --NUMBER 4 0 经办人ID
jd.shrid AUDIT_STAFF, --NUMBER 4 0 审核人ID
jd.shrq AUDIT_DATE, --DATE 审核日期
jd.sfwy YUE, --NUMBER 1 0 是否为约
jd.jzcs FLOOR, --VARCHAR2 10 建筑层数
jd.dth DUTUHAO --VARCHAR2 100 都图号
from hz_lsjz.tpk_lsjzjd jd;
--2 WEBADMIN.T_HISPIC 建档资料信息表
CREATE view WEBADMIN.T_HISPIC as
select zl.id PIC_NM, --NUMBER 8 0 Y 1 图片内码
zl.qtid JD_NM, --NUMBER 8 0 建档内码
CASE WHEN zl.sfsy=1 THEN '首页图' WHEN zllx=0 THEN '方位图' ELSE zl.zlbm END ZP_NAME, --VARCHAR2 50 资料名字
null ZP, --BLOB 资料
zl.zllx ZP_TYPE, --NUMBER 8 0 资料类型
zl.kzm ISZP, --VARCHAR2 10 是否是照片
zl.bz MEMO, --VARCHAR2 200 备注
zl.sfwwxs ISNETSHOW, --NUMBER 1 0 是否外网显示
zl.zlxh SCANPAGENUM, --NUMBER 4 0 页号
zl.yh SCANMATER_XH, --NUMBER 4 0 资料序号
zl.zlzt SCANMATER_STATUS, --VARCHAR2 10 资料状态
zl.zlys SCANMATER_PAGENUM --NUMBER 4 0 资料页数
from hz_lsjz.tpk_zl zl where zllx not in(4,5,7,8);
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本文将深入探讨如何使用`DECODE`函数和`CASE-WHEN`语句在Oracle中实现自定义排序。 1. **DECODE函数** `DECODE`函数在Oracle中被广泛用于条件判断和值的替换。在自定义排序的场景下,我们可以根据字段值来指定对应...
DB2中可以使用CASE函数来实现复杂的逻辑判断,例如set prodname = (case when (name is not null) then name when (namestr is not null) then namestr else defaultname end);该语句可以实现对prodname变量的赋值,...
- Hadoop Hive: 使用 `IF` 或 `CASE WHEN...THEN...ELSE END` 实现条件判断,`IFNULL` 相当于 Oracle 的 `NVL`,`COALESCE` 可以处理多个可能的空值。 - Phoenix: 也有 `IF` 语句和 `IFNULL` 函数,但 `DECODE` ...
HR@XE> select case when commission_pct is null then 0 2 else commission_pct end commission_pct 3 from employees 4 where commission_pct is null 5 and rownum = 1; ``` 这个CASE语句检查`commission_pct`...
WHEN salary BETWEEN 3000 AND 5000 THEN 'Medium' ELSE 'Low' END AS "Salary Tier" FROM employees; ``` 以上就是Oracle数据库中一些常用的函数实例。了解并熟练掌握这些函数,能够极大地提升你在数据库...
CASE WHEN col = 'value1' THEN val1 WHEN col = 'value2' THEN val2 ELSE def_val END ``` **注意:** Oracle提供了`DECODE`函数,而DB2则使用`CASE`语句来实现类似的功能。 #### 十三、Rownum **Oracle:** ``...
SELECT CASE WHEN 1=1 THEN 'True' ELSE 'False' END AS result; ``` ### 8. DECODE 函数 DECODE(expr, search_expr, result, ..., default)函数类似于CASE WHEN...ELSE...END表达式,但更简洁。 ```sql SELECT ...
WHEN e THEN -- handle exception END; ``` - DB2示例: ```sql BEGIN -- some code that may raise exception e ON SQLERROR DO -- handle exception END ``` - 注意点: Oracle使用 `EXCEPTION` 块来...
- `CASE WHEN...THEN...END`: 用于构造复杂的条件表达式。 7. **其他函数**: - `DECODE()`: 如果第一个参数等于给定的值,则返回相应的第二个参数,否则返回第三个参数。 - `GREATEST() / LEAST()`: 返回一组值...
CASE WHEN ELSE END结构是更复杂的Case表达式形式,允许更复杂的条件判断。DECODE函数则提供了一个简化版的IF-THEN-ELSE逻辑,它可以根据指定的值返回不同的结果。 对于层次结构数据,Oracle支持递归查询。例如,在...
SELECT CASE a1 WHEN '1' THEN 'n1' WHEN '2' THEN 'n2' ELSE 'n3' END AS aa1 FROM db2; ``` 或者使用 `COALESCE`: ```sql SELECT COALESCE(NULLIF(a1, '1'), NULLIF(a1, '2'), 'n3') AS aa1 FROM db2; ``` ...
- Oracle的DECODE函数在DB2中不支持,可以使用CASE WHEN语句替代,如`SELECT CASE WHEN f_areaid IS NULL THEN '空' ELSE f_areaid END FROM masa_user`。 7. **NVL函数**: - Oracle的NVL在DB2中需要使用...
SELECT CASE 4 WHEN 10 THEN '' WHEN 20 THEN 'z' WHEN 30 THEN 'x' ELSE '未知' END FROM dual; -- 输出结果:未知 ``` - **DECODE**: 简单条件判断表达式。 ```sql SELECT DECODE(10, 10, '', 20, 'z', 30, ...
WHEN 'ANALYST' THEN SALARY * 1.15 WHEN 'MANAGER' THEN SALARY * 1.10 WHEN 'CLERK' THEN SALARY * 1.05 ELSE SALARY END AS NEW_SALARY FROM EMP_CK; ``` 2. **`DECODE()`**:类似于 `CASE` 语句,但更加...
4. **函数替换**:替换不兼容的Oracle函数,如`wm_concat`变更为`string_agg`,`regexp_replace`添加额外参数,`Bitand`使用`&`运算符,`NVL`使用`coalesce`,`DECODE`用`case when then else end`表达式。...
WHEN integer(flag) = 0 THEN '假' WHEN integer(flag) = 1 THEN '真' ELSE '异常' END FROM TEST ``` 在进行Oracle到DB2的转换时,理解这些语法差异是至关重要的,以确保查询和数据操作的正确性。同时,还...
- Teradata使用`case when then else end`进行条件判断,Oracle也有相同语法,只是在某些情况下可能需要使用`decode()`函数。 3. **日期/时间操作**: - Teradata中,日期转换通常使用`cast(date as char(10))`,...
- `CASE WHEN condition THEN result [WHEN ... ELSE else_result] END`: 根据条件返回不同的结果。 8. **其他实用函数**: - `DECODE(column, value1, result1, value2, result2, ..., default_result)`: 根据`...
- **CASE expression WHEN value THEN result [WHEN ...] [ELSE default] END**: 多条件判断函数,根据expression的值返回不同的结果。 #### 6. 其他常用函数 - **NULLIF(expression1, expression2)**: 如果两个...