oracle按照字段的首字母进行排序然后再根据字段后面的上中下进行排序
时间: 2023-12-04 16:03:27 浏览: 36
您可以使用Oracle中的ORDER BY子句来按照字段的首字母进行排序,然后再根据字段后面的上中下进行排序。例如,假设您有一个名为“my_table”的表,其中包含一个名为“my_column”的字段,您可以使用以下查询来进行排序:
SELECT * FROM my_table ORDER BY SUBSTR(my_column,1,1),
CASE
WHEN SUBSTR(my_column,-1)='上' THEN 1
WHEN SUBSTR(my_column,-1)='中' THEN 2
WHEN SUBSTR(my_column,-1)='下' THEN 3
END
这将首先按照“my_column”字段的首字母进行排序,然后将按照字段末尾的“上中下”进行排序,其中“上”排在“中”前面,“中”排在“下”前面。
相关问题
oracle按照字段的首字母进行排序然后再根据字段后面的(上)(中)(下)进行排序
您可以使用Oracle的ORDER BY子句对字段进行排序。要按照字段的首字母进行排序,您可以使用以下语法:
```
SELECT column_name
FROM table_name
ORDER BY SUBSTR(column_name, 1, 1);
```
这将返回按照字段的首字母排序的结果集。如果您还需要根据字段后面的(上)(中)(下)进行排序,您可以使用以下语法:
```
SELECT column_name
FROM table_name
ORDER BY SUBSTR(column_name, 1, 1),
CASE
WHEN column_name LIKE '%(上)' THEN 1
WHEN column_name LIKE '%(中)' THEN 2
WHEN column_name LIKE '%(下)' THEN 3
ELSE 4
END;
```
这将首先按照字段的首字母进行排序,然后按照(上)(中)(下)的顺序进行排序。
oracle 排序 字段是字符串类型 先按照数字大小排序后按字母
可以使用Oracle的函数来实现这个排序需求,具体如下:
假设要排序的字段为col_name:
```
SELECT col_name
FROM table_name
ORDER BY to_number(regexp_substr(col_name, '^\d+')), col_name;
```
这个语句中,首先使用 `regexp_substr` 函数取出字符串中的数字部分,并将其转换为数字类型进行排序,然后再按照原始的字符串进行排序。这样就可以达到先按照数字大小排序,再按照字母排序的效果。