功能:分割字段逗号前后的值,并替换‘-’符号。
假设你有一个名为 employees
的表,其中包含以下字段:
full_name
:包含值如"AAA-BBB,CCC-DDD"
的字段。status
:包含值"Y"
或"N"
的字段,用于决定取值逻辑。
你可以使用以下 SQL 查询来获取处理后的值:
SELECT
CASE
WHEN status = 'Y' THEN
replace(split_part(full_name, ',', 1), '-', '')
WHEN status = 'N' THEN
replace(split_part(full_name, ',', 2), '-', '')
END AS processed_name
FROM employees;
查询解释
employees
:这是你的表名。full_name
:这是包含名字和姓氏的字段,格式为"FirstName-LastName,FirstName-LastName"
。status
:这是一个字段,其值决定是取full_name
字段中的第一个还是第二个名字。split_part(full_name, ',', 1)
:这个函数取full_name
字段中第一个逗号之前的部分。split_part(full_name, ',', 2)
:这个函数取full_name
字段中第一个逗号之后的部分。replace
函数用于去掉字符串中的连字符'-'
。CASE
语句根据status
字段的值决定是取逗号前的字符串还是逗号后的字符串,并去掉连字符。processed_name
:这是为最终结果列命名的别名。
假设 employees
表包含以下数据:
full_name | status |
---|---|
"AAA-BBB,CCC-DDD" | "Y" |
"EEE-FFF,GGG-HHH" | "N" |
示例结果
执行上述 SQL 查询后,你将得到以下结果:
processed_name |
---|
"AAACCC" |
"FFFGGG" |
这样,你就可以在你的博客中清晰地展示如何根据不同的条件从字段中提取和处理字符串。