dev_id字段为唯一,但是最后面会加上qsry字段的内容,qsry字段会出现1,5,9,21,58,76等多条数据,怎么截取dev_id前15位数,并且判断qsry字段的所有数据都不包含1和21的呢?
假设您的数据存储在一个名为table1
的表中,其中dev_id
和qsry
分别为字段名,您可以使用如下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的任意字符串。