oracle case when instr
时间: 2023-10-17 10:31:50 浏览: 47
Oracle的CASE WHEN和INSTR函数可以一起使用来实现条件判断和字符串搜索。
CASE WHEN是一种条件语句,用于根据指定的条件执行不同的操作。语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
```
INSTR函数用于在字符串中搜索指定的子字符串,并返回子字符串第一次出现的位置。它的语法如下:
```
INSTR(string, substring, start_position, occurrence)
```
下面是一个示例,演示了如何使用CASE WHEN和INSTR函数来判断字符串中是否包含指定的子字符串:
```sql
SELECT column1,
CASE WHEN INSTR(column1, 'keyword') > 0 THEN '包含关键字'
ELSE '不包含关键字'
END AS result
FROM table1;
```
在上面的示例中,我们使用了INSTR函数来判断column1列中是否包含关键字'keyword',如果包含,则返回'包含关键字',否则返回'不包含关键字'。
相关问题
oracle case when 字段比较
在Oracle中,可以使用CASE WHEN语句来比较字段的值。在使用CASE WHEN语句时,可以根据需要进行等值判断或表达式判断。与DECODE函数相比,CASE WHEN更灵活,可以用于=,>=,<,<=,<>,IS NULL,IS NOT NULL,BETWEEN等多种判断条件。以下是一些示例:
1. 使用CASE WHEN进行等值判断:
```sql
SELECT CASE WHEN 字段名 = '1' THEN '条件1'
WHEN 字段名 = '2' THEN '条件2'
ELSE '其他条件'
END AS 别名
FROM 表名;
```
2. 使用CASE WHEN进行表达式判断:
```sql
SELECT CASE WHEN INSTR(hiredate, '82') = 0 THEN 0
ELSE 1
END AS "year"
FROM emp;
```
3. 使用CASE WHEN进行多条件判断和求和:
```sql
SELECT COUNT(*) AS total,
SUM(CASE WHEN INSTR(hiredate, '80') = 0 THEN 0
ELSE 1
END) AS "1980",
SUM(CASE WHEN INSTR(hiredate, '81') = 0 THEN 0
ELSE 1
END) AS "1981",
SUM(CASE WHEN INSTR(hiredate, '82') = 0 THEN 0
ELSE 1
END) AS "1982",
SUM(CASE WHEN INSTR(hiredate, '87') = 0 THEN 0
ELSE 1
END) AS "1987"
FROM emp;
```
以上是使用CASE WHEN对字段进行比较的示例。可以根据实际需求灵活运用CASE WHEN来满足不同的条件判断和逻辑运算。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Oracle case when对字段的空值判断及其两种用法](https://blog.csdn.net/weixin_40364882/article/details/118394307)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [oracle 学习笔记 - DECODE函数和CASE WHEN 比较](https://blog.csdn.net/u010758410/article/details/77285290)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
oracle case when contains字符串函数
Oracle数据库中的CASE WHEN语句可以用于实现条件逻辑,而包含字符串的函数则包括了很多种,下面列举其中几种:
1. INSTR函数:用于查找字符串中子字符串的位置,语法如下:
INSTR (string, substring [, start_position [, occurrence]])
其中,string是要查找的字符串,substring是要查找的子字符串,start_position是开始查找的位置,occurrence是要查找的第几次出现。
2. SUBSTR函数:用于截取字符串中的子字符串,语法如下:
SUBSTR(string, start_position [, length])
其中,string是要截取的字符串,start_position是开始截取的位置,length是要截取的长度。
3. CONCAT函数:用于将两个或多个字符串连接起来,语法如下:
CONCAT(string1, string2 [, string3, ...])
其中,string1、string2、string3等是要连接的字符串。
这些函数都可以在CASE WHEN语句中使用,以实现更复杂的条件逻辑。