DB2 values 技巧、sysibm.tables和syscat.tables、

 


1、 values 虚表

--最简单
Select * from (values 1)  as a;
--这是SQL很有用,可以做一些逻辑判断,如果加上where条件的话.
Select * from (values 1)  as a where &num>0;
其中&num将用数值替换.
--建个多字段的表
Select * from (values ('lA@cn.ibm.com',1),('ABC@126.com',2) ) as a(name,id);
可以用这种方法指定一些常量,用来left outer join.

2、

db2 => values 1

1
-----------
          1

  1 条记录已选择。


-- 获取系统当前日期
select current date from sysibm.sysdummy1;
select current time from sysibm.sysdummy1;
select current timestamp from sysibm.sysdummy1;
--sysibm.sysdummy1表是一个特殊的内存中的表,用它可以发现如上面演示的 DB2 寄存器的值。您也可以使用关键字 VALUES 来对寄存器或表达式求值。
VALUES current date;
VALUES current time;
VALUES current timestamp;

 


3、 values 赋值

-- 给变量赋值的另一种方法
values expr1, expr2, expr3 into a, b, c;

-- 相当于
set a = expr1;
set b = expr2;
set c = expr3;


4、

在 VALUES 子句中包含多行的内容。

例如,下面的语句将插入三行:INSERT INTO mytable VALUES (1, 'abc'), (2, 'def'), (3, 'ghi')


5、

数据库的视图里有sysibm.tables和syscat.tables,这两个有什么区别?很多资料上不是说sysibm模式的是基表吗,怎么在视图里也有sysibm模式,是干什么用的?

sysibm.tables的表里面的信息比syscat.tables的少,或者说IBM认为你想知道的信息在sysibm.tables里面已经都可以知道了,这个应该是给用户使用的。syscat.tables应该是给系统使用的。

sysibm这个schema下的view,是对很多表的简化,可以直接查view来检索你感兴趣的资料。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值