(SELECT t2.MACHINE_ID, t4.CUSTODYNO FROM tpmdata.EMS_R_CALL_DEFECT t2 left join TPMDATA.MACHINE t4 on t4.DEVICENAME = t2.MACHINE_ID WHERE t2.CALL_REPAIR_NO = x.CALL_REPAIR_NO AND ROWNUM = 1) AS Machine_Id 这条sql如何拿到CUSTODYNO 这个值
时间: 2024-02-14 17:04:02 浏览: 117
这条 SQL 查询语句使用了子查询,子查询的结果集中包含了 `MACHINE_ID` 和 `CUSTODYNO` 两列数据,但是最终查询语句中只返回了 `MACHINE_ID` 一列。如果要拿到 `CUSTODYNO` 的值,可以在查询语句中增加一个选择操作,例如:
```
SELECT Machine_Id, CUSTODYNO
FROM (
SELECT t2.MACHINE_ID, t4.CUSTODYNO
FROM tpmdata.EMS_R_CALL_DEFECT t2
LEFT JOIN TPMDATA.MACHINE t4 ON t4.DEVICENAME = t2.MACHINE_ID
WHERE t2.CALL_REPAIR_NO = x.CALL_REPAIR_NO AND ROWNUM = 1
) subquery
```
在这个查询语句中,我们先对子查询结果进行了命名为 `subquery`,然后在最外层的查询语句中选择了 `Machine_Id` 和 `CUSTODYNO` 两列。这样就可以拿到 `CUSTODYNO` 的值了。
相关问题
Oracle中SELECT ROWNUM, CASE WHEN d1.sum_deduct > d2.count THEN d1.department END AS department, NVL(d1.defect_desc, '') AS defect_desc FROM hryt_gca_vehicle_audit_defect d1 JOIN hryt_gca_vehicle_issue d2 ON d1.department = d2.department WHERE TO_CHAR(d1.create_date,'yyyy mm iw') = TO_CHAR(SYSDATE, 'yyyy mm iw') AND d1.department IS NOT null;为什么还能查出为null的字段
这是因为在SQL中使用了JOIN操作,JOIN操作会将两个表中符合条件的记录连接起来,如果某个表中没有符合条件的记录,那么连接后的结果中就会出现null值。在这个查询中,使用了LEFT JOIN,所以即使d1.department为null,也会被包含在结果中。
代码解析img_paths = glob.glob(os.path.join(self.img_path, defect_type) + "/*.png")
这段代码使用了 Python 的 glob 模块来获取指定路径下的所有匹配文件的路径列表。
首先,代码中使用 `glob.glob()` 函数来匹配指定路径下的文件。`glob.glob()` 函数接受一个文件路径的模式字符串作为参数,并返回与该模式匹配的文件路径列表。
具体到这段代码,`self.img_path` 是一个文件夹的路径,`defect_type` 是一个子文件夹的名称。`os.path.join(self.img_path, defect_type)` 将这两个路径拼接起来,得到包含子文件夹的完整路径。
然后,代码在该完整路径后面加上 `"/*.png"`,这表示匹配该子文件夹下所有以 `.png` 结尾的文件。`"/*.png"` 是一个通配符模式,其中 `*` 表示匹配任意多个字符。
最后,`glob.glob()` 返回一个列表,其中包含了符合模式匹配的所有文件的路径。这个列表赋值给变量 `img_paths`,在代码中可以进一步处理或使用这些文件路径。
以下是一个示例:
```python
import glob
import os
class ImageLoader:
def __init__(self, img_path, defect_type):
self.img_path = img_path
self.defect_type = defect_type
def load_images(self):
img_paths = glob.glob(os.path.join(self.img_path, self.defect_type) + "/*.png")
return img_paths
loader = ImageLoader("path/to/images", "defect_folder")
images = loader.load_images()
print(images)
```
假设图像文件存储在路径 `"path/to/images/defect_folder"` 下,并且这个文件夹中包含了多个以 `.png` 结尾的图像文件。通过调用 `load_images()` 方法,`img_paths` 将返回一个列表,其中包含了所有符合模式匹配的图像文件的路径。
希望这个解析能帮助到你!如果还有其他问题,请随时提问。
阅读全文