在Oracle中编码为:汉字加数字组成,用order by去掉汉字截取查询
时间: 2024-02-18 18:01:28 浏览: 66
一个oracle根据特定字符截取数据
如果你使用Oracle数据库,可以使用SUBSTR和REGEXP_REPLACE函数将汉字部分去掉,然后使用ORDER BY子句按照数字部分排序。
例如,假设有一个名为"products"的表,其中有一个"product_code"字段表示产品编码,编码由汉字和数字组成,你希望按照数字部分进行排序,可以使用如下语句:
```sql
SELECT * FROM products ORDER BY TO_NUMBER(REGEXP_REPLACE(product_code, '[^0-9]', ''));
```
该语句中,REGEXP_REPLACE函数用于去掉product_code字段中的汉字部分,只留下数字,[^0-9]表示匹配所有非数字字符,然后将其替换为空字符串。最后,使用TO_NUMBER函数将截取出来的数字部分转换为数字类型,以便进行排序。
注意:以上语句可能需要根据你的具体情况进行调整。另外,如果product_code字段中包含非数字字符,那么TO_NUMBER函数会抛出"ORA-01722: invalid number"异常。
阅读全文