请问, PostgreSQL脚本有宏替换, 计算字符串公式的能力吗? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

请问, PostgreSQL脚本有宏替换, 计算字符串公式的能力吗?

德哥 2015-12-30 14:05:09 2960

类似 a=2 ; evaluate('5-a') ; 如果将这个值赋值给这个变量呢? result = evaluate('5-a') ;

关系型数据库 PostgreSQL
分享到
取消 提交回答
全部回答(1)
  • 德哥
    2019-07-17 18:23:23
    PostgreSQL支持DO来执行匿名块, 实现类似上述的功能如下 : 
    postgres=# do 
    $$
    
    postgres$# declare
    postgres$# a int;
    postgres$# result int;
    postgres$# begin
    postgres$# a := 2;
    postgres$# result := 5-a;
    postgres$# raise notice '%', result;
    postgres$# end
    postgres$# 
    $$
    
    postgres-# ;
    NOTICE:  3
    DO
    另外, 通过PostgreSQL的客户端psql定义的变量也可以实现 : 
    设置变量和它的值
    postgres=# \set a 2
    postgres=# \set result 5-:a
    输出变量的值
    postgres=# select :result;
     ?column? 
    ----------
            3
    (1 row)
    输出变量的值
    postgres=# \echo :a
    2
    postgres=# \echo :result
    5-:a
    输出当前psql下的所有变量
    postgres=# \set
    AUTOCOMMIT = 'on'
    PROMPT1 = '%/%R%# '
    PROMPT2 = '%/%R%# '
    PROMPT3 = '>> '
    VERBOSITY = 'default'
    VERSION = 'PostgreSQL 9.1.2 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-51), 64-bit'
    DBNAME = 'postgres'
    USER = 'postgres'
    HOST = '127.0.0.1'
    PORT = '1931'
    ENCODING = 'UTF8'
    LASTOID = '0'
    a = '2'
    result = '5-:a'
    删除变量
    \unset a
    \unset result
    可以参考man psql
    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题