oracle case when REGEXP_LIKE(ledger_code, '^(660143,660212,6602213,5301023,5301022603,6601480000,6601480300,6602212610,6602212613).*') then amount end as ticheng 这里面.* 表示什么意思
时间: 2024-04-29 15:20:40 浏览: 113
在正则表达式中,“.”表示匹配任意一个字符,“*”表示匹配前面的字符零次或多次。所以,正则表达式中的“.*”可以匹配任意数量的任意字符,包括零个字符。
在这个 SQL 查询语句中,正则表达式“^(660143,660212,6602213,5301023,5301022603,6601480000,6601480300,6602212610,6602212613).*”的含义是:
从字符串开头“^”开始匹配以 660143、660212、6602213、5301023、5301022603、6601480000、6601480300、6602212610 或 6602212613 中的任意一个数字开头的 ledger_code 值,并且匹配任意数量的任意字符,包括零个字符。
相关问题
oracle case when REGEXP_LIKE(ledger_code, '^(660143,660212,6602213,5301023,5301022603,6601480000,6601480300,6602212610,6602212613).*') then amount end as ticheng, 是啥意思
这是一个 Oracle 数据库的 SQL 查询语句,它使用了 CASE WHEN 和 REGEXP_LIKE 函数。这个查询语句的作用是在查询结果中添加一个名为 ticheng 的列,如果 ledger_code 字段的值以给定的正则表达式开头,则该行的 ticheng 列的值等于 amount 列的值,否则 ticheng 的值为 NULL。
具体来说,这个正则表达式的含义是以 660143、660212、6602213、5301023、5301022603、6601480000、6601480300、6602212610 或 6602212613 开头的 ledger_code 字段值。如果一个行的 ledger_code 值以这些数字中的任意一个开头,则该行的 ticheng 列的值就等于 amount 列的值,否则 ticheng 列为 NULL。
Oracle 获取中文REGEXP_LIKE
在Oracle中,REGEXP_LIKE函数可以用于获取中文。REGEXP_LIKE函数与LIKE函数类似,但它更强大,因为它可以使用正则表达式进行匹配搜索。可以按照以下方式使用REGEXP_LIKE函数来获取中文:
```sql
SELECT column_name
FROM table_name
WHERE REGEXP_LIKE(column_name, '中文的正则表达式')
```
其中,column_name是要搜索的列名,table_name是要搜索的表名,'中文的正则表达式'是用于匹配中文的正则表达式。你可以根据具体的需求来编写适合的正则表达式来匹配中文字符。
#### 引用[.reference_title]
- *1* *2* *3* [Oracle REGEXP_LIKE模糊查询用法例子](https://blog.csdn.net/sinat_40572875/article/details/127948263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文