排除risk_type中的 None: None、 None、none,postgresql怎么实现
时间: 2024-09-24 08:29:09 浏览: 24
在PostgreSQL中,如果你想从`risk_type`列中排除值`None`、`NULL`以及`none`,你可以使用`IS NOT NULL`条件结合`ILIKE`函数来进行模糊匹配。`ILIKE`用于在文本字段上进行大小写不敏感的模式匹配,我们可以将其与空字符串`''`进行比较来排除空值。以下是SQL查询的例子:
```sql
SELECT * FROM your_table
WHERE risk_type IS NOT NULL AND risk_type ILIKE '%none%';
```
这个查询会返回所有`risk_type`不是`NULL`并且不包含"none"(无论大小写)的记录。
如果你想完全排除`None`或`null`这样的明确值,可以修改为:
```sql
SELECT * FROM your_table
WHERE risk_type != 'None' AND risk_type IS NOT NULL;
```
或者
```sql
SELECT * FROM your_table
WHERE COALESCE(risk_type, '') <> '' OR risk_type IS NOT NULL;
```
这里`COALESCE`函数用于将`NULL`转换为空字符串,然后检查是否不等于空字符串。
相关问题
{ "product_level": "A3", "grantcredit_28d_amount": 400000, "risk_level": "A", "grantcredit_30d_amount": 400000, "mid_rand_flow": 1, "pvalue_sd_rh_p1": 0.14455552872542543, "new_grade_level": "3", "model_score": 5, "credit_amount": 400000, "credit_asset_quality": "A" } 上面的这段json存在于PG库的一个名字为 grantcredit_info 字段中,我需要单独解析出来该json字段中的 grantcredit_30d_amount 值,并转化为 bigint 类型 表名为os_credit_snapshot 这段解析json字段取值的sql你写一下
可以使用PostgreSQL提供的JSON函数来解析JSON字段中的值,具体的SQL语句如下:
```
SELECT (grantcredit_info ->> 'grantcredit_30d_amount')::BIGINT
FROM os_credit_snapshot;
```
其中,`grantcredit_info` 是JSON字段名,`'grantcredit_30d_amount'` 是要取出的键名,`::BIGINT` 是将取出的字符串转换为bigint类型。
nextval('jtzc2_gid_seq'::regclass)是什么意思
`nextval('jtzc2_gid_seq'::regclass)`是一个 PostgreSQL 数据库中的函数,用于获取一个序列(sequence)的下一个值。
在 PostgreSQL 中,序列是一种特殊的对象,用于生成唯一的自增数字。当您插入一条新记录时,可以使用序列来为该记录分配一个唯一的标识符。
`nextval()` 函数接受一个序列作为参数,并返回该序列的下一个值。在您提供的示例中,序列名称为 `'jtzc2_gid_seq'`。通过调用 `nextval('jtzc2_gid_seq'::regclass)`,您将获得 `'jtzc2_gid_seq'` 序列的下一个值。
请注意,`::regclass` 是将序列名称转换为 `regclass` 数据类型的语法。这是为了确保传递给 `nextval()` 函数的参数是一个有效的序列名称。
希望这解答了您的疑问。如果还有其他问题,请随时提问!