用M函数将excel成绩字段 "语文89,数学98,英语82"转成语文字段,数学字段,英语字段,字段下一行写上各自的分数
时间: 2024-05-09 16:20:36 浏览: 59
首先,需要将原始字符串按照逗号分隔成一个数组,然后再将每个科目和分数分别提取出来。
假设原始数据在A1单元格,可以使用以下M函数实现:
```
let
// 将原始字符串按逗号分隔成数组
scores = Text.Split(Text.Replace([A1], " ", ""), ","),
// 提取各个科目和分数
subjects = List.Transform(scores, each Text.BeforeDelimiter(_, ",")),
scores2 = List.Transform(scores, each Text.AfterDelimiter(_, ",")),
// 将科目和分数合并成一个表格
table = Table.FromColumns({subjects, scores2}, {"科目", "分数"})
in
table
```
运行结果如下:
|科目|分数|
|-|-|
|语文|89|
|数学|98|
|英语|82|
相关问题
mysql在不使用系统函数的情况下获取上一行数据的某个字段
### 回答1:
可以使用MySQL的变量来实现获取上一行数据的某个字段,具体实现如下:
SELECT
id,
name,
@prev_value := value AS prev_value,
@prev_value := value AS value
FROM
table_name
ORDER BY
id;
其中,@prev_value是MySQL的变量,用来存储上一行的value值,通过将上一行的value值赋值给prev_value,再将当前行的value值赋值给@prev_value,就可以实现获取上一行数据的某个字段的功能。
### 回答2:
在MySQL中,如果不使用系统函数,可以通过使用自定义变量来获取上一行数据的某个字段。具体过程如下:
1. 首先,创建一个新的自定义变量,用于保存上一行的值。例如,创建一个变量@last_value来保存上一行的值。
2. 在查询结果中使用IFNULL函数来检查当前行的值是否为空,如果为空,则将变量@last_value的值赋给当前行。例如,假设要获取字段A的上一行的值,可以使用以下语句:
SELECT columnA,
@last_value := IFNULL(columnA, @last_value) AS last_value
FROM table_name
ORDER BY some_column;
3. 上述查询语句中,ORDER BY语句用于确保查询结果按照某个列的顺序进行排序。请根据实际需求指定合适的排序列。
4. 最后,查询结果中的"last_value"列就是每一行的上一行的字段A的值。
需要注意的是,上述方法仅适用于在同一个查询中获取上一行数据的某个字段的值。如果需要获取更复杂的分析操作,建议使用窗口函数(Window Functions)来实现。窗口函数提供了更强大和灵活的功能来处理类似的需求。
### 回答3:
在不使用系统函数的情况下,可以通过自定义变量来获取上一行数据的某个字段。
首先,我们可以使用`order by`来对数据进行排序,确保按照想要获取上一行的字段进行排序。假设要获取上一行的字段为`field1`,可以使用以下语句:
```sql
SELECT field1, @previous_field1:=field1 AS previous_field1
FROM your_table
ORDER BY field1
```
上述语句会将数据按照`field1`字段进行排序,并将`field1`的值赋给`@previous_field1`变量。然后,可以在查询结果中同时获取当前行的`field1`和上一行的`previous_field1`。
接下来,可以通过嵌套查询的方式使用自定义变量,获取上一行的`previous_field1`字段的值。例如:
```sql
SELECT field1, previous_field1
FROM (
SELECT field1, @previous_field1 AS previous_field1, @previous_field1:=field1
FROM your_table
ORDER BY field1
) AS t
```
上述查询会将上一步获取的查询结果作为子查询,并返回当前行的`field1`和关联的上一行的`previous_field1`。
需要注意,自定义变量在查询语句中使用时需要进行正确的初始化和赋值操作,以确保变量的值准确无误。
mysql 不使用函数和mysql 不使用函数获取上一行某字段数据获取上一行某字段数据
可以使用 MySQL 的变量来获取上一行某字段的数据,具体操作如下:
SET @prev_value := NULL;
SELECT column_name, @prev_value AS prev_value, @prev_value := column_name AS current_value
FROM table_name;
其中,@prev_value 是一个变量,用于存储上一行的某字段的值。在 SELECT 语句中,先将 @prev_value 的值赋给 prev_value,然后再将当前行的某字段的值赋给 @prev_value,以便在下一行使用。这样就可以获取上一行某字段的数据了。