gpt4 book ai didi

sql - 从(微笑)字符串而不是从元素列表中查找字母

转载 作者:行者123 更新时间:2023-12-04 08:45:57 28 4
gpt4 key购买 nike

目标
如果字符串中有字母(原子),则过滤掉 SMILES 字符串,对大小写不敏感 , 不来自以下元素列表 H, B, C, N, O, F, Al, Si, P, S, Cl ,这是一个截断的列表。总共有38个元素。
背景
我有一个包含 SMILES 字符串的数据库:

The simplified molecular-input line-entry system (SMILES) is a specification in the form of a line notation for describing the structure of chemical species using short ASCII strings.


(更多信息 Wikipedia link)
微笑示例:
OC[C@H]1O[C@H]([C@H](O)[C@@H]1O)n1cnc2c(NC3CCCC3)ncnc12
这样做的目的是从数据库中去除稀有元素和有机金属。

最佳答案

一种适用于任何版本的 SQL 的通用方法是创建一个表,其中包含不允许使用的原子符号的黑名单。要保留的微笑将是那些与任何列入黑名单的元素符号不匹配的微笑。

WITH disallowed AS (
SELECT 'He' AS symbol UNION ALL
SELECT 'Li' UNION ALL
SELECT 'Be' UNION ALL
SELECT 'Ne' UNION ALL
...
SELECT 'Lr'
)

SELECT t1.smile
FROM yourTable t1
WHERE NOT EXISTS (SELECT 1 FROM disallowed t2
WHERE t1.smile LIKE '%' || t2.symbol || '%');
诸如 UO2 之类的化合物将被上述内连接过滤掉,其中含有列入黑名单的元素铀。

关于sql - 从(微笑)字符串而不是从元素列表中查找字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64327673/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com