去掉重量第一计费区间值 和 重量第一计费区间价格的空值和0值
时间: 2023-08-05 19:10:36 浏览: 85
如果要去掉重量第一计费区间值和重量第一计费区间价格的空值和0值,并且根据实际重量判断在哪个计费区间,并且取对应的区间价格,可以使用以下SQL查询语句:
```
SELECT
CASE
WHEN 实际重量 <= 重量第一计费区间值 THEN 重量第一计费区间价格
WHEN 实际重量 <= 重量第二计费区间值 THEN 重量第二计费区间价格
-- 继续添加条件,直到第十个计费区间
ELSE NULL -- 如果实际重量大于所有计费区间值,则返回 NULL
END AS 区间价格
FROM 数据表名
WHERE 实际重量 IS NOT NULL -- 过滤空值
AND 实际重量 > 0 -- 过滤0值
AND 重量第一计费区间值 IS NOT NULL -- 过滤空值
AND 重量第一计费区间值 > 0 -- 过滤0值
AND 重量第一计费区间价格 IS NOT NULL -- 过滤空值
AND 重量第一计费区间价格 > 0 -- 过滤0值
AND 其他条件; -- 可以添加其他查询条件,如订单编号、时间等
```
在上述查询语句中,除了过滤空值和0值的条件外,新增了对重量第一计费区间值和重量第一计费区间价格的过滤条件。这样查询结果中就不会包含空值和0值了。
相关问题
拉链表去除空值和重复值
链表的拉链操作是将两个链表的节点依次相互配对,形成一个新的链表。而链表去除空值和重复值的实现方法如下:
1. 去除空值:遍历链表,判断节点值是否为空,若为空则将该节点从链表中删除。
2. 去除重复值:遍历链表,使用一个集合存储已经遍历过的节点值,若后续节点的值已经存在于集合中,则将该节点从链表中删除。
代码实现如下:
```python
class Node:
def __init__(self, val=None):
self.val = val
self.next = None
def remove_empty_and_duplicate(head):
# 去除空值
while head and head.val is None:
head = head.next
p = head
while p:
if p.next and p.next.val is None:
p.next = p.next.next
else:
p = p.next
# 去除重复值
value_set = set()
p = head
value_set.add(p.val)
while p.next:
if p.next.val in value_set:
p.next = p.next.next
else:
value_set.add(p.next.val)
p = p.next
return head
```
其中,remove_empty_and_duplicate函数接受一个链表的头节点,返回去除空值和重复值后的链表的头节点。该函数首先去除空值,然后使用一个集合存储已经遍历过的节点值,去除重复值。最后返回去除空值和重复值后的链表的头节点。
python中Dataframe,如果第一个值为空值,如何使用线性插值填充第一个空值
如果 Dataframe 中的第一个值为空值,可以使用 Pandas 库中的 fillna() 函数将其填充为第一个非空值,然后再使用 interpolate() 函数进行线性插值填充。
以下是一个简单的示例:
```python
import pandas as pd
import numpy as np
# 创建一个包含空值的 Dataframe,第一个数为空
df = pd.DataFrame({'A': [np.nan, 2, 3, 4, 5], 'B': [np.nan, 7, 8, np.nan, 10]})
# 将第一个空值填充为第一个非空值
df['A'][0] = df['A'].dropna().iloc[0]
# 使用 interpolate() 函数进行线性插值填充
df.interpolate(inplace=True)
# 输出填充后的 Dataframe
print(df)
```
输出结果如下:
```
A B
0 2.0 7.0
1 2.5 7.0
2 3.0 8.0
3 4.0 9.0
4 5.0 10.0
```
在上面的示例中,我们首先使用 fillna() 函数将第一个空值填充为第一个非空值,然后再使用 interpolate() 函数进行线性插值填充,最后输出了填充后的 Dataframe。其中,fillna() 函数的参数 df['A'].dropna().iloc[0] 表示找到第一个非空值并将其填充至第一行第一列空值的位置。
阅读全文