加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何检查postgres中的值的类型

发布时间:2020-12-12 16:44:46 所属栏目:MsSql教程 来源:网络整理
导读:我想检查postgres中的值的类型,如下所示: SELECT id,CASE WHEN val_is_integer THEN (SOME_QUERY) WHEN val_isnot_integer THEN (ANOTHER_QUERY) ELSE 0 END FROM test; 怎么做? 笔记: 该值是表中的varchar类型,在该字段中有值为numeric和varchar … 例:
我想检查postgres中的值的类型,如下所示:
SELECT id,CASE 
         WHEN val_is_integer THEN (SOME_QUERY)
         WHEN val_isnot_integer THEN (ANOTHER_QUERY)
         ELSE 0
       END
  FROM test;

怎么做?

笔记:
该值是表中的varchar类型,在该字段中有值为numeric和varchar …

例:

ID | value
1 | test
2 | 10
3 | 12
4 | test123

解决方法

您的值列总是类型为varchar,您似乎想检查内容是否是数字/整数.

你可以通过创建一个函数来做到这一点.

create function isdigits(text) returns boolean as '
select $1 ~ ''^(-)?[0-9]+$'' as result
' language sql;

(该函数可能通过尝试将文本转换为int或使用int4()函数并捕获发生的错误并返回NULL来实现).

有了这样的功能,你可以做:

SELECT id,CASE 
         WHEN value IS NULL THEN 0
         WHEN isdigits(value) THEN (SOME_QUERY)
         ELSE (ANOTHER_QUERY)
       END
  FROM test;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读