case when 将一个列拆成两列
时间: 2023-07-01 20:06:45 浏览: 61
可以使用 `SUBSTRING_INDEX` 函数将一个列拆成两列。
假设有一个名为 `full_name` 的列,包含名字和姓氏,格式为 "姓, 名"。我们想要拆成两个列,一个是 `first_name`,包含名字,另一个是 `last_name`,包含姓氏。
可以使用以下 SQL 语句:
```
SELECT
SUBSTRING_INDEX(full_name, ',', 1) AS last_name,
SUBSTRING_INDEX(full_name, ',', -1) AS first_name
FROM table_name;
```
这里的 `SUBSTRING_INDEX` 函数会根据指定的分隔符 `,` 将 `full_name` 列拆分成两个部分。第一个 `SUBSTRING_INDEX` 函数用于获取姓氏,它使用 `,` 作为分隔符,并选择分隔符左侧的部分。第二个函数用于获取名字,它同样使用 `,` 作为分隔符,但是选择分隔符右侧的部分。最终结果将会是一个包含 `last_name` 和 `first_name` 两个列的表。
相关问题
case when 将一个列中的值按照条件拆成两个列
可以使用 CASE WHEN 表达式来实现将一个列中的值按照条件拆成两个列。
例如,假设有一个表格 t1,包含两个列 a 和 b,现在需要将列 a 中的值根据条件分成两个列 c 和 d,其中 c 中包含满足条件的值,d 中包含不满足条件的值。可以使用如下 SQL 语句实现:
```
SELECT
CASE
WHEN a > 10 THEN a
ELSE NULL
END AS c,
CASE
WHEN a <= 10 THEN a
ELSE NULL
END AS d,
b
FROM
t1;
```
以上 SQL 语句中,使用了 CASE WHEN 表达式,当 a 的值大于 10 时,将 a 的值赋给 c,否则将 NULL 赋给 c;当 a 的值小于等于 10 时,将 a 的值赋给 d,否则将 NULL 赋给 d。最后将 c、d 和 b 返回。
case when case when 的列
根据提供的引用内容,case when语句可以用于根据条件对列进行分类和排序。case when case when语句是指在case when语句中嵌套另一个case when语句。下面是一个示例:
```sql
SELECT name,
CASE
WHEN age > 60 THEN
CASE
WHEN gender = 'M' THEN 'Senior Male'
ELSE 'Senior Female'
END
ELSE
CASE
WHEN gender = 'M' THEN 'Male'
ELSE 'Female'
END
END AS category
FROM persons;
```
在上面的示例中,我们使用了两个嵌套的case when语句来对人员进行分类。首先,我们根据年龄将人员分为两组:60岁以上和60岁以下。然后,我们在每个组中使用另一个case when语句来根据性别进一步分类。