91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Oracle SQL中實現indexOf和lastIndexOf功能的思路及代碼

小云
171
2023-08-16 14:24:48
欄目: 云計算

在 Oracle SQL 中,沒有直接提供類似于 indexOf 和 lastIndexOf 的內置函數。但可以通過使用其他字符串函數和子查詢來實現這兩個功能。

  1. 實現 indexOf 功能:
  • 使用 INSTR 函數獲取字符串中第一次出現指定字符的位置。

  • 使用 CASE 語句將位置為 0 的情況轉換為 NULL。

  • 使用 NVL 函數將 NULL 值轉換為空字符串。

SELECT CASE WHEN INSTR(column_name, 'search_string') = 0
THEN NULL
ELSE INSTR(column_name, 'search_string')
END AS index_of
FROM table_name;
  1. 實現 lastIndexOf 功能:
  • 使用 INSTR 函數獲取字符串中最后一次出現指定字符的位置。

  • 使用 CASE 語句將位置為 0 的情況轉換為 NULL。

  • 使用 REVERSE 函數將字符串反轉。

  • 使用 INSTR 函數獲取反轉字符串中第一次出現指定字符的位置。

  • 使用 CASE 語句將位置為 0 的情況轉換為 NULL。

  • 使用 NULLIF 函數將位置不為 NULL 的情況轉換為空字符串。

  • 使用 LENGTH 函數獲取字符串長度。

  • 使用 “-” 運算符將字符串長度減去反轉字符串的位置。

SELECT CASE WHEN INSTR(REVERSE(column_name), REVERSE('search_string')) = 0
THEN NULL
ELSE LENGTH(column_name) - INSTR(REVERSE(column_name), REVERSE('search_string')) + 1
END AS last_index_of
FROM table_name;

注意:以上代碼中的 column_name 和 table_name 需要替換為實際的列名和表名。‘search_string’ 需要替換為實際的搜索字符串。

0
赤壁市| 南华县| 鄂温| 张掖市| 清涧县| 长白| 汝阳县| 井陉县| 淳化县| 郯城县| 商南县| 东阳市| 博乐市| 任丘市| 宁化县| 沐川县| 迭部县| 托克逊县| 孙吴县| 金华市| 涟源市| 靖西县| 通海县| 阳春市| 高淳县| 五大连池市| 昆山市| 武川县| 榆中县| 英吉沙县| 丽江市| 沙洋县| 南京市| 麻栗坡县| 潜山县| 社会| 六枝特区| 海宁市| 澎湖县| 金寨县| 仪陇县|