oracle查询不包含多个字符串方法

dev_id字段为唯一,但是最后面会加上qsry字段的内容,qsry字段会出现1,5,9,21,58,76等多条数据,怎么截取dev_id前15位数,并且判断qsry字段的所有数据都不包含1和21的呢?

假设您的数据存储在一个名为table1的表中,其中dev_idqsry分别为字段名,您可以使用如下SQL语句实现所需的操作:

SELECT SUBSTRING(dev_id, 1, 15) AS dev_id
FROM table1
WHERE qsry NOT LIKE '%1%' AND qsry NOT LIKE '%21%';

上述语句使用SUBSTRING函数截取dev_id字段的前15位,并使用WHERE子句过滤掉qsry字段中包含1和21的记录。LIKE运算符用于模糊匹配,%表示匹配任意字符(包括0个或多个字符),因此'%1%'表示匹配包含数字1的任意字符串。NOT运算符表示取反,因此NOT LIKE '%1%'表示匹配不包含数字1的任意字符串。同理,'%21%'表示匹配包含数字21的任意字符串,NOT LIKE '%21%'表示匹配不包含数字21的任意字符串。