SELECT CASE WHEN B ELSE C END FROM A LEFT JOIN B LEFT JOIN C,python的类似用法

时间: 2025-06-10 07:24:13 浏览: 20
<think>好的,我现在要处理用户的问题,他之前已经询问过SQL中SELECT CASE WHEN结合LEFT JOIN的用法以及在Python中的实现方法,现在他想进一步了解如何在Python中实现类似SQL的SELECT CASE WHEN B ELSE C END FROM A LEFT JOIN B LEFT JOIN C的功能。我需要结合用户提供的引用内容和他之前的对话历史来给出详细的回答。 首先,回顾用户之前的提问和我的回答。用户之前询问了SQL中使用CASE WHEN和LEFT JOIN的情况,以及如何在Python中用Pandas和Numpy实现类似功能,比如使用pd.merge进行左连接,然后使用np.where或mask进行条件赋值。现在用户的问题更复杂,涉及到多个LEFT JOIN和嵌套的CASE WHEN逻辑,即当B存在时取B的值,否则取C的值,最后再处理都不存在的情况。 接下来,我需要参考用户提供的两个引用。引用[1]提到在Pandas中使用isin()实现类似MySQL的IN语法,这可能与条件筛选有关,但当前问题更关注多表连接和条件判断。引用[2]说明了Pandas支持四种JOIN方式(left、right、inner、outer),并且可以通过on指定列进行连接,这与我之前提到的pd.merge方法一致。 用户现在的问题需要处理三个表(A、B、C)的左连接,并根据B和C的存在情况决定取值。这需要分步骤进行: 1. **多表LEFT JOIN操作**:用户需要将主表A分别左连接B和C。在Pandas中,可以通过多次使用pd.merge来实现,每次连接后保留主表的所有记录。 2. **多层条件判断**:SQL中的CASE WHEN B ELSE C END逻辑需要优先检查B是否存在(即B的相关字段不为空),如果存在则取B的值,否则检查C是否存在,取C的值,最后都不存在则使用默认值。在Python中,可以使用np.select或者嵌套的np.where来实现这种多层条件判断。 需要注意的是,多个LEFT JOIN可能导致数据量增加,特别是如果连接键不唯一的话,可能会产生笛卡尔积,导致数据膨胀。因此,在连接前需要确保连接键的唯一性或进行适当的数据处理,比如去重。 另外,用户可能需要处理连接后的列名冲突问题,Pandas在合并时会自动添加后缀,但需要用户根据实际情况调整列名,以确保后续的条件判断能够正确引用相关字段。 最后,性能方面,使用向量化操作(如np.select)比逐行应用函数更高效,尤其是在处理大数据集时,这一点需要强调,以帮助用户优化代码。 总结步骤: - 使用两次pd.merge进行左连接,分别连接A-B和A-C。 - 处理连接后的字段,使用np.select根据B和C的存在情况设置优先级。 - 处理默认值和可能的列名冲突。 - 提供优化建议,如验证连接类型、处理重复数据和使用向量化操作。 需要确保回答结构清晰,分步骤说明,并给出代码示例,同时关联之前的回答和引用内容,以增强连贯性和参考性。</think>#### Python实现多表LEFT JOIN与多条件CASE WHEN的完整方案 通过`pd.merge`完成多表左连接后,使用`np.select`实现**优先级条件判断**。以下是具体实现方法: --- ### 一、场景还原(SQL逻辑) 假设需要实现以下SQL逻辑: ```sql SELECT A.id, CASE WHEN B.value IS NOT NULL THEN B.value -- 优先取B表数据 WHEN C.value IS NOT NULL THEN C.value -- 其次取C表数据 ELSE '无数据' END AS final_value FROM table_A A LEFT JOIN table_B B ON A.id = B.a_id LEFT JOIN table_C C ON A.id = C.a_id ``` --- ### 二、Python实现步骤 #### 步骤1:创建示例数据 ```python import pandas as pd import numpy as np # 主表 df_a = pd.DataFrame({'id': [1,2,3,4], 'name': ['A','B','C','D']}) # 关联表B(仅包含id=1,2的记录) df_b = pd.DataFrame({'a_id': [1,2], 'value': ['数据B1','数据B2']}) # 关联表C(仅包含id=3,4的记录) df_c = pd.DataFrame({'a_id': [3,4], 'value': ['数据C3','数据C4']}) ``` #### 步骤2:执行双LEFT JOIN ```python # 第一次LEFT JOIN(A+B) merged = pd.merge(df_a, df_b, left_on='id', right_on='a_id', how='left', suffixes=('', '_B')) # 第二次LEFT JOIN(结果+C) merged = pd.merge(merged, df_c, left_on='id', right_on='a_id', how='left', suffixes=('', '_C')) ``` #### 步骤3:实现多条件判断 ```python # 定义条件优先级 conditions = [ ~merged['value'].isna(), # 优先检查B表字段 ~merged['value_C'].isna() # 其次检查C表字段 ] choices = [ merged['value'], # B表有数据时取值 merged['value_C'] # C表有数据时取值 ] # 应用条件选择 merged['final_value'] = np.select(conditions, choices, default='无数据') # 清理中间列 result = merged[['id','name','final_value']] ``` --- ### 三、输出结果验证 | id | name | final_value | |-----:|-----:|------------:| | 1 | A | 数据B1 | | 2 | B | 数据B2 | | 3 | C | 数据C3 | | 4 | D | 数据C4 | --- ### 四、关键技术解析 1. **连接策略** `suffixes=('', '_C')`自动处理重复列名,主表字段保留原名,关联表追加后缀[^2] 2. **条件优先级** `np.select()`按conditions列表顺序执行判断,实现B表 > C表 > 默认值的优先级 3. **空值处理** 使用`isna()`检测空值,`~`符号表示逻辑非 --- ### 五、高级应用场景 #### 场景:多层业务规则 当需要根据多个字段组合判断时: ```python conditions = [ (merged['value'].str.contains('重要')) & (merged['type'] == 'VIP'), (merged['value_C'] > 100) | (merged['score'] < 60) ] choices = ['优先级1', '优先级2'] ``` #### 性能优化技巧 - 合并前使用`df.drop_duplicates(subset=['a_id'])`去重避免笛卡尔积 - 使用`pd.merge(validate='one_to_one')`验证连接关系[^2] --- --相关问题--: 1. 如何用`pd.merge`实现`FULL OUTER JOIN`并保留所有数据来源标记? 2. Pandas中如何实现`CASE WHEN...AND/OR...`的多条件复合判断? 3. 多表连接时出现重复列名有哪些处理方案? [^1]: 参考Pandas官方文档`pd.merge`的suffixes参数说明 [^2]: 基于《利用Python进行数据分析》第8章数据规整化相关内容
阅读全文

相关推荐

WITH BASE_WAFER AS (SELECT DISTINCT A.*,OPER_IN - OPER_OUT AS OPER_DEF FROM(SELECT A.*,CASE WHEN B.OPER_IN IS NULL THEN 0 ELSE B.OPER_IN END AS OPER_IN, CASE WHEN B.OPER_OUT IS NULL THEN 0 ELSE B.OPER_OUT END AS OPER_OUT FROM (SELECT MAT_ID,OLD_OPER_CODE, CASE WHEN OLD_OPER_CODE = 'C1300-00' THEN 1 WHEN OLD_OPER_CODE = 'A2100-00' THEN 2 WHEN OLD_OPER_CODE = 'D1100-00' THEN 3 WHEN OLD_OPER_CODE = 'D3200-00' THEN 4 WHEN OLD_OPER_CODE = 'D3300-00' THEN 5 WHEN OLD_OPER_CODE = 'D3900-00' THEN 6 WHEN OLD_OPER_CODE = 'D3400-00' THEN 7 WHEN OLD_OPER_CODE = 'E2200-00' THEN 8 WHEN OLD_OPER_CODE = 'E2100-00' THEN 9 ELSE NULL END AS OPER_SORT FROM EDBADM.DWT_PRODUCT_HIS WHERE 1=1 ${if(len(WAFER_ID)=0," and MAT_ID in ('')"," and MAT_ID in ('"+replace(WAFER_ID," ","','")+"')")} AND (EVENT_NAME IN ('MITOMChangeSpec','TrackOut','Separate') OR (OLD_OPER_CODE = 'E2100-00' AND (EVENT_NAME = 'TrackIn'))) AND OLD_OPER_CODE IN ('C1300-00','A2100-00','D1100-00','D3200-00','D3300-00','D3900-00','D3400-00','E2200-00','E2100-00') AND PRODUCT_TYPE = 'Wafer')A LEFT JOIN (SELECT WAFERNAME,PROCESSOPERATIONNAME,SUM(CASE WHEN DEFCODE = '良品' THEN 1 ELSE 0 END) AS OPER_OUT,COUNT(DIENAME) AS OPER_IN FROM ( SELECT A.*,ROW_NUMBER() OVER (PARTITION BY DIENAME ORDER BY OPER_SORT ASC) AS MIN_SORT FROM( SELECT WAFERNAME,DIENGCODE,DIEGRADE,DIENAME, CASE WHEN PROCESSOPERATIONNAME = 'C1300-00' THEN 1 WHEN PROCESSOPERATIONNAME = 'A2100-00' THEN 2 WHEN PROCESSOPERATIONNAME = 'D1100-00' THEN 3 WHEN PROCESSOPERATIONNAME = 'D3200-00' THEN 4 WHEN PROCESSOPERATIONNAME = 'D3300-00' THEN 5 WHEN PROCESSOPERATIONNAME = 'D3900-00' THEN 6 WHEN PROCESSOPERATIONNAME = 'D3400-00' THEN 7 WHEN PROCESSOPERATIONNAME = 'E2200-00' THEN 8 WHEN PROCESSOPERATIONNAME = 'E2100-00' THEN 9 ELSE NULL END AS OPER_SORT , CASE WHEN DIENGCODE IS NULL THEN '良品' ELSE DIENGCODE END AS DEFCODE, PROCESSOPERATIONNAME,TIMEKEY,ROW_NUMBER() OVER (PARTITION BY DIENAME,PROCESSOPERATIONNAME ORDER BY TIMEKEY DESC) AS RN_DIE_ID from ODSMES.CT_DIEGRADEINFOHISTORY where 1=1 ${if(len(WAFER_ID)=0," and WAFERNAME in ('')"," and WAFERNAME in ('"+replace(WAFER_ID," ","','")+"')")})A --AND EVENTNAME = 'MITOMWaferMapUpload' WHERE RN_DIE_ID = 1 AND DEFCODE = '良品' UNION ALL SELECT WAFERNAME,FN_DIENGCODE AS DIENGCODE,FN_DIEGRADE AS DIEGRADE,DIENAME,OPER_SORT,DEFCODE,PROCESSOPERATIONNAME,TIMEKEY,RN_DIE_ID,MIN_SORT FROM (SELECT A.*,B.DIEGRADE AS F_GRADE, case when B.DIEGRADE IS NOT NULL THEN '良品' ELSE A.DIENGCODE END AS FN_DIENGCODE , case when B.DIEGRADE IS NOT NULL THEN 'G' ELSE A.DIEGRADE END AS FN_DIEGRADE FROM (SELECT * FROM ( SELECT A.*,ROW_NUMBER() OVER (PARTITION BY DIENAME ORDER BY OPER_SORT ASC) AS MIN_SORT FROM( SELECT WAFERNAME,DIENGCODE,DIEGRADE,DIENAME, CASE WHEN PROCESSOPERATIONNAME = 'C1300-00' THEN 1 WHEN PROCESSOPERATIONNAME = 'A2100-00' THEN 2 WHEN PROCESSOPERATIONNAME = 'D1100-00' THEN 3 WHEN PROCESSOPERATIONNAME = 'D3200-00' THEN 4 WHEN PROCESSOPERATIONNAME = 'D3300-00' THEN 5 WHEN PROCESSOPERATIONNAME = 'D3900-00' THEN 6 WHEN PROCESSOPERATIONNAME = 'D3400-00' THEN 7 WHEN PROCESSOPERATIONNAME = 'E2200-00' THEN 8 WHEN PROCESSOPERATIONNAME = 'E2100-00' THEN 9 ELSE NULL END AS OPER_SORT , CASE WHEN DIENGCODE IS NULL THEN '良品' ELSE DIENGCODE END AS DEFCODE, PROCESSOPERATIONNAME,TIMEKEY,ROW_NUMBER() OVER (PARTITION BY DIENAME,PROCESSOPERATIONNAME ORDER BY TIMEKEY DESC) AS RN_DIE_ID from ODSMES.CT_DIEGRADEINFOHISTORY where 1=1 ${if(len(WAFER_ID)=0," and WAFERNAME in ('')"," and WAFERNAME in ('"+replace(WAFER_ID," ","','")+"')")})A --AND EVENTNAME = 'MITOMWaferMapUpload' WHERE DEFCODE != '良品') WHERE MIN_SORT = 1 AND RN_DIE_ID = 1)A LEFT JOIN ( SELECT A.*, CASE WHEN PROCESSOPERATIONNAME = 'C1300-00' THEN 1 WHEN PROCESSOPERATIONNAME = 'A2100-00' THEN 2 WHEN PROCESSOPERATIONNAME = 'D1100-00' THEN 3 WHEN PROCESSOPERATIONNAME = 'D3200-00' THEN 4 WHEN PROCESSOPERATIONNAME = 'D3300-00' THEN 5 WHEN PROCESSOPERATIONNAME = 'D3900-00' THEN 6 WHEN PROCESSOPERATIONNAME = 'D3400-00' THEN 7 WHEN PROCESSOPERATIONNAME = 'E2200-00' THEN 8 WHEN PROCESSOPERATIONNAME = 'E2100-00' THEN 9 ELSE NULL END AS OPER_SORT from ODSMES.CT_DIEGRADEINFOHISTORY A where 1=1 ${if(len(WAFER_ID)=0," and WAFERNAME in ('')"," and WAFERNAME in ('"+replace(WAFER_ID," ","','")+"')")} --AND EVENTNAME = 'MITOMWaferMapUpload AND DIEGRADE = 'G' )B ON A.DIENAME = B.DIENAME AND A.TIMEKEY < B.TIMEKEY) WHERE FN_DIEGRADE != 'G' ) WHERE DIENAME NOT IN ('YCA76CE0AA70401','YCA76CE03A30303','YCA76CE03A30305','YCA76CE03B30207','YCA76CE06C40204','YCA76CE06C40206','YCA76CE06C40208','YCA76CE03C50207','YCA76CE03C20103','YCA76CE03C50301','YCA76CE06C40401','YCA76CE06C40409','YCA76CE03C50502','YCA76CE06A20306','YCA76CE0AC00606','YCA76CE0AC10004','YCA76CE09A20505','YCA76CE09A90200','YCA76CE0CA40308','YCA76CE0DB90400','YCA76CE09A20602','YCA76CE09A20608','YCA76CE0CA40502','YCA76CE0CA40504','YCA76CE0DB90403','YCA76CE09A90400','YCA76CE0AB70503','YCA76CE0AB70504','YCA76CE0DB90606','YCA76CE0DB90608','YCA76CE0CB10102','YCA76CE09A30601','YCA76CE0CB10201','YCA76CE0CB80003','YCA76CE09B00209','YCA76CE0AA70706','YCA76CE0CB80505','YCA76CE09C30505','YCA76CE0AB90307','YCA76CE0CA60509','YCA76CE0CB90206','YCA76CE09C40106','YCA76CE0AA50203','YCA76CE0AA50107','YCA76CE0AA50202','YCA76CE09B20304','YCA76CE09C40502','YCA76CE09C40607','YCA76CE0AB50500','YCA76CE0CC20205','YCA76CE09C40608','YCA76CE0AB50603','YCA76CE0CC20304','YCA76CE0CC20306','YCA76CE0AA50507','YCA76CE0CC20602','YCA76CE0AB10301','YCA76CE0AC00506','YCA76CE0AC00507','YCA76CE09C30506','YCA76CE09C40107','YCA76CE09C40606','YCA76CE0AB90207','YCA76CE0AB90401','YCA76CE0AC10003','YCA76CE0AC10005','YCA76CE0AC10201','YCA76CE0AC10209','YCA76CE0AC40106','YCA76CE0BB10500','YCA76CE0CA40602','YCA76CE0CA60403','YCA76CE0CB80108','YCA76CE0CC20402','YCA76CE0DB90500','YCA76CE0DB90302','YCA76CE03C50206','YCA76CE03B30006','YCA76CE03C50504','YCA76CE03C50605','YCA76CE06B80200','YCA76CE06B80406','YCA76CE06C40101','YCA76CE06C40200','YCA76CE06C40301','YCA76CE08A30506','YCA76CE03C20401','YCA76CE06A20302','YCA76CE06A20308','YCA76CE06C40502','YCA76CE06C40508','YCA76CE09A70508','YCA76CE08A20504','YCA76CE09A90108','YCA76CE09A90300','YCA76CE09A20603','YCA76CE09A90601','YCA76CE09B00208','YCA76CE09B00309','YCA76CE09C30003','YCA76CE09C30106','YCA76CE09C30403','YCA76CE09C30504','YCA76CE0AA70201','YCA76CE0AA70400','YCA76CE0AB40209','YCA76CE0AB70104','YCA76CE0AB90402','YCA76CE0AB90500','YCA76CE0AB90505','YCA76CE0AB90703','YCA76CE03B00302','YCA76CE03B00304','YCA76CE03B20508','YCA76CE03B00104','YCA76CE03B00408','YCA76CE03B20004','YCA76CE03B20102','YCA76CE03B20604','YCA76CE03B00704','YCA76CE03B20208','YCA76CE03B40309','YCA76CE06B20703','YCA76CE06B20308','YCA76CE06B20401','YCA76CE06B20506','YCA76CE06A70703','YCA76CE06C30108','YCA76CE03B60304','YCA76CE06B90106','YCA76CE06C50603','YCA76CE07A30505','YCA76CE06B60401','YCA76CE06A50204','YCA76CE06A50206','YCA76CE06B20103','YCA76CE03B40604','YCA76CE06A50404','YCA76CE06B40503','YCA76CE07B80608','YCA76CE06B40705','YCA76CE0AA20303','YCA76CE0CB00608','YCA76CE09C30300','YCA76CE09C30304','YCA76CE0AB40504','YCA76CE0BC10602','YCA76CE09C40201','YCA76CE0DA30507','YCA76CE0AC00405','YCA76CE0AC50502','YCA76CE0CB40506','YCA76CE09A10703','YCA76CE0BA90403','YCA76CE0CA50601','YCA76CE0CB40203','YCA76CE0CB40305','YCA76CE03A30101','YCA76CE03B00207','YCA76CE03B00208','YCA76CE03B00300','YCA76CE03B00305','YCA76CE06A50407','YCA76CE06A70104','YCA76CE03A90506','YCA76CE03A90704','YCA76CE03B20505','YCA76CE03B20705','YCA76CE03B50505','YCA76CE03B50407','YCA76CE03C10200','YCA76CE06B20005','YCA76CE06B20105','YCA76CE06B20206','YCA76CE06B20208','YCA76CE06B40601','YCA76CE06B40703','YCA76CE06C30506','YCA76CE07B30502','YCA76CE07B80504','YCA76CE08B10300','YCA76CE06B20406','YCA76CE06B60507','YCA76CE06C00608','YCA76CE07C30006','YCA76CE0AA10301','YCA76CE03A90501','YCA76CE03A90206','YCA76CE03A90300','YCA76CE03B40408','YCA76CE03B30202','YCA76CE03C20203','YCA76CE03C20402','YCA76CE06A50105','YCA76CE03B40602','YCA76CE06A50207','YCA76CE06A50401','YCA76CE06A50405','YCA76CE06B20605','YCA76CE0AA60303','YCA76CE09B40205','YCA76CE0CB70406','YCA76CE09B60706','YCA76CE0DB80301','YCA76CE0AB20503','YCA76CE0DB80505','YCA76CE06A50409','YCA76CE06A50500','YCA76CE03B00106','YCA76CE03B20407','YCA76CE06B40602','YCA76CE07B60406','YCA76CE03C20703','YCA76CE06B20405','YCA76CE06B20502','YCA76CE06B70101','YCA76CE06B70401','YCA76CE07B80602','YCA76CE07B10201','YCA76CE0AA30403','YCA76CE0AB70206','YCA76CE0AB70502','YCA76CE03B00303','YCA76CE0CB70509','YCA76CE06A50005','YCA76CE0AB20407','YCA76CE06B20505','YCA76CE03B30406','YCA76CE09A90207','YCA76CE0AB50601','YCA76CE0DB90605','YCA76CE03C00204','YCA76CE09A90501','YCA76CE03C50403','YCA76CE0BB10402','YCA76CE0AA50004','YCA76CE09B00507','YCA76CE0HA40703','YCA76CE08B30407','YCA76CE03B30606','YCA76CE03A90209','YCA76CE0AC20209','YCA76CE06C40006','YCA76CE0HA40208','YCA76CE06B20209','YCA76CE0AB70301','YCA76CE06B20205','YCA76CE0DB30308','YCA76CE0AB50503','YCA76CE03C50401','YCA76CE09A90106','YCA76CE09C30705','YCA76CE0AB10402','YCA76CE08A50706','YCA76CE06A20704','YCA76CE08B30102','YCA76CE09A90406','YCA76CE0AC10306','YCA76CE09A90204','YCA76CE09A90304','YCA76CE0DA50400','YCA76CE0AB90704','YCA76CE0AC10304','YCA76CE09B00505','YCA76CE09A90206','YCA76CE0AB20305','YCA76CE03C10102','YCA76CE03B20606','YCA76CE08B30403','YCA76CE09C10405','YCA76CE09A30505','YCA76CE08B30107','YCA76CE0DB50300','YCA76CE09B00603','YCA76CE0CA40608','YCA76CE03A30105','YCA76CE09B00605','YCA76CE0AB50703','YCA76CE0AC40306','YCA76CE0CB70602','YCA76CE06B20101','YCA76CE0AB50205','YCA76CE03B00500','YCA76CE03B00103','YCA76CE0DA70308','YCA76CE03B00603','YCA76CE03C20202','YCA76CE08A40207','YCA76CE0AB10302','YCA76CE0DA50302','YCA76CE0CA60503') --剔除良率 GROUP BY WAFERNAME,PROCESSOPERATIONNAME)B ON A.MAT_ID = B.WAFERNAME AND A.OLD_OPER_CODE = B.PROCESSOPERATIONNAME)A ), FE_OPER_FY AS( SELECT A.MAT_ID ,A.OLD_OPER_CODE ,A.OPER_SORT ,A.OPER_NAME ,CASE WHEN OPER_SORT = 1 THEN OPER_IN ELSE INITIAL_IN - Cum_DEF END AS TURE_IN ,CASE WHEN OPER_SORT = 1 THEN OPER_OUT ELSE INITIAL_IN - Cum_DEF - OPER_DEF END AS TURE_OUT FROM ( SELECT A.MAT_ID, A.OLD_OPER_CODE, A.OPER_SORT, A.OPER_IN, A.OPER_OUT, A.OPER_DEF, B.OPER_IN AS INITIAL_IN, CASE WHEN A.OLD_OPER_CODE = 'C1300-00' THEN 'MIT' WHEN A.OLD_OPER_CODE = 'A2100-00' THEN 'Total CG Attach' WHEN A.OLD_OPER_CODE = 'D1100-00' THEN 'Wafer Marking' WHEN A.OLD_OPER_CODE = 'D3200-00' THEN 'Wafer Dicing' WHEN A.OLD_OPER_CODE = 'D3300-00' THEN 'Wafer Breaker' WHEN A.OLD_OPER_CODE = 'D3900-00' THEN 'Glass Scriber(BE)' WHEN A.OLD_OPER_CODE = 'D3400-00' THEN 'PNP' WHEN A.OLD_OPER_CODE = 'E2200-00' THEN 'COC Bonding' WHEN A.OLD_OPER_CODE = 'E2100-00' THEN 'Bonding' ELSE NULL END AS OPER_NAME, -- SUM(OPER_IN) OVER (PARTITION BY MAT_ID ORDER BY OPER_SORT ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Cumulative_IN, -- SUM(OPER_OUT) OVER (PARTITION BY MAT_ID ORDER BY OPER_SORT ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS Cumulative_OUT, SUM(A.OPER_DEF) OVER (PARTITION BY A.MAT_ID ORDER BY A.OPER_SORT ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS Cum_DEF FROM BASE_WAFER A LEFT JOIN BASE_WAFER B ON A.MAT_ID = B.MAT_ID AND B.OPER_SORT = 1 )A), BE_BASE AS( SELECT A.*,ROW_NUMBER() OVER (PARTITION BY DIE_ID,OPER_SORT ORDER BY EVENT_TIMEKEY DESC) AS RN_DIE_SORT,ROW_NUMBER() OVER (PARTITION BY DIE_ID ORDER BY EVENT_TIMEKEY DESC) AS RN_DIE_ID, CASE WHEN DIE_GRADE LIKE 'F%' THEN 'Q1' ELSE DIE_GRADE END AS NEW_DIE_GRADE, CASE WHEN DIE_GRADE LIKE 'F%' THEN DEFECT_CODE ELSE NEW_DEFECT_NAME END AS NEW_NEW_DEFECT_NAME FROM( SELECT WAFER_ID,DIE_ID,OPER_CODE,EVENT_TIMEKEY,OPER_TYPE,DEFECT_NAME,DEFECT_CODE,DIE_GRADE, CASE --WHEN OPER_CODE = 'E2100-00' THEN 9 WHEN OPER_CODE = 'E2800-00' THEN 10 --Bonding Test WHEN OPER_CODE = 'E2700-00' THEN 11 --Bonding VI WHEN OPER_CODE = 'E2900-00' THEN 11 --FPC Bonding Repair WHEN OPER_CODE = 'F1100-00' THEN 12 --FPC MDL Side Glue WHEN OPER_CODE = 'F5100-00' THEN 13 --FPC Side Glue VI WHEN OPER_CODE = 'F1200-00' THEN 13 --FPC Side Glue Repair WHEN OPER_CODE = 'A7100-00' THEN 14 --POL Attach WHEN OPER_CODE = 'F4100-00' THEN 15 --BE Bank WHEN OPER_CODE = 'G2100-00' THEN 16 --Trimming Code WHEN OPER_CODE = 'G3100-00' THEN 17 --Aging WHEN OPER_CODE = 'G2500-00' THEN 18 -- Film Remove WHEN OPER_CODE = 'A7600-00' THEN 18 -- Gamma POL Repair WHEN OPER_CODE = 'A7700-00' THEN 18 -- Gamma POL Auto Clave WHEN OPER_CODE = 'G2200-00' THEN 19 -- GM WHEN OPER_CODE = 'G2300-00' THEN 19 -- GM FA1 WHEN OPER_CODE = 'G2400-00' THEN 19 -- GM FA2 WHEN OPER_CODE = 'G4800-00' THEN 20 -- FT AOI WHEN OPER_CODE = 'G6100-00' THEN 21 -- FT AOI REJ WHEN OPER_CODE = 'A7400-00' THEN 21 -- Test POL Repair WHEN OPER_CODE = 'A7500-00' THEN 21 -- Test POL Auto Clave WHEN OPER_CODE = 'G4100-00' THEN 22 --Inital Test WHEN OPER_CODE = 'G4900-00' THEN 23 --FV1 --WHEN OPER_CODE = 'F1300-00' THEN 22 --Test FPC Side Glue Repair WHEN OPER_CODE = 'F6100-00' THEN 24 --Heatsink Attach WHEN OPER_CODE = 'F6200-00' THEN 25 --Heatsink Auto Clave WHEN OPER_CODE = 'G2600-00' THEN 26 --Trimming Code2 WHEN OPER_CODE = 'G4200-00' THEN 27 --Final Test WHEN OPER_CODE = 'G4700-00' THEN 27 --Retest Final Test WHEN OPER_CODE = 'G4600-00' THEN 27.1 --DBT WHEN OPER_CODE = 'G4400-00' THEN 27.2 --DOT WHEN OPER_CODE = 'G4500-00' THEN 27.3 --VACS WHEN OPER_CODE = 'G4A00-00' THEN 28 -- FV2 WHEN OPER_CODE = 'G4B00-00' THEN 28 -- FV2 REJ WHEN OPER_CODE = 'G4A00-01' THEN 28 --Retest FV2 ELSE NULL END AS OPER_SORT, CASE --WHEN OPER_CODE = 'E2100-00' THEN 'Bonding' WHEN OPER_CODE = 'E2800-00' THEN 'Bonding Test' WHEN OPER_CODE = 'E2700-00' THEN 'Bonding VI' WHEN OPER_CODE = 'E2900-00' THEN 'Bonding VI' WHEN OPER_CODE = 'F1100-00' THEN 'FPC MDL Side Glue' WHEN OPER_CODE = 'F5100-00' THEN 'FPC Side Glue VI' WHEN OPER_CODE = 'F1200-00' THEN 'FPC Side Glue VI' WHEN OPER_CODE = 'A7100-00' THEN 'POL Attach' WHEN OPER_CODE = 'F4100-00' THEN 'BE Bank' WHEN OPER_CODE = 'G2100-00' THEN 'Trimming Code' WHEN OPER_CODE = 'G3100-00' THEN 'Aging' WHEN OPER_CODE = 'G2500-00' THEN 'Film Remove' WHEN OPER_CODE = 'A7600-00' THEN 'Film Remove' WHEN OPER_CODE = 'A7700-00' THEN 'Film Remove' WHEN OPER_CODE = 'G2200-00' THEN 'Gamma' WHEN OPER_CODE = 'G2300-00' THEN 'Gamma' WHEN OPER_CODE = 'G2400-00' THEN 'Gamma' WHEN OPER_CODE = 'G4800-00' THEN 'FT AOI' WHEN OPER_CODE = 'G6100-00' THEN 'FT AOI REJ' WHEN OPER_CODE = 'A7400-00' THEN 'FT AOI REJ' WHEN OPER_CODE = 'A7500-00' THEN 'FT AOI REJ' WHEN OPER_CODE = 'G4100-00' THEN 'Inital Test' WHEN OPER_CODE = 'G4900-00' THEN 'FV1' --WHEN OPER_CODE = 'F1300-00' THEN 22 --Test FPC Side Glue Repair WHEN OPER_CODE = 'F6100-00' THEN 'Heatsink Attach' WHEN OPER_CODE = 'F6200-00' THEN 'Heatsink Auto Clave' WHEN OPER_CODE = 'G2600-00' THEN 'Trimming Code2' WHEN OPER_CODE = 'G4200-00' THEN 'Final Test' WHEN OPER_CODE = 'G4700-00' THEN 'Final Test' WHEN OPER_CODE = 'G4600-00' THEN 'DBT' WHEN OPER_CODE = 'G4400-00' THEN 'DOT' WHEN OPER_CODE = 'G4500-00' THEN 'VACS' WHEN OPER_CODE = 'G4A00-00' THEN 'FV2' WHEN OPER_CODE = 'G4B00-00' THEN 'FV2' WHEN OPER_CODE = 'G4A00-01' THEN 'FV2' ELSE NULL END AS OPER_GROUP, CASE WHEN DIE_ID IN ('YCA76CE0EC00601','YCA76CE0EC00303','YCA76CE0CA80601','YCA76CE03A90201','YCA76CE0EB30604','YCA76CE0EB30507','YCA76CE0EB30204','YCA76CE03B00504','YCA76CE0FC50107','YCA76CE0EB30006','YCA76CE07C40502','YCA76CE07C40503','YCA76CE0CC40006','YCA76CE0AB10102','YCA76CE0AB40408','YCA76CE0AB40103','YCA76CE0AA90103','YCA76CE0AA30503','YCA76CE0AB40305','YCA76CE0AA90706','YCA76CE0AA90004','YCA76CE08C40706','YCA76CE0FA40308','YCA76CE03A70608','YCA76CE0CA50105','YCA76CE0AB40309','YCA76CE03C40105','YCA76CE07C10509','YCA76CE0AC50704','YCA76CE03B70501','YCA76CE0AC50604','YCA76CE0AC50003','YCA76CE07C10400','YCA76CE0FB60205','YCA76CE0FB10705','YCA76CE0FB10405','YCA76CE09B50200','YCA76CE09B50101','YCA76CE03A10204','YCA76CE07C00306','YCA76CE0AA40304','YCA76CE08B70105','YCA76CE0CB40303','YCA76CE07B80508','YCA76CE03A10205','YCA76CE09B50704','YCA76CE0EB30307','YCA76CE0EC00203','YCA76CE08C40300','YCA76CE09B50604','YCA76CE09B50601','YCA76CE09B50500','YCA76CE09B50603','YCA76CE0DB60606','YCA76CE09B30601','YCA76CE09B30507','YCA76CE09B30602','YCA76CE09B30502','YCA76CE09B30506','YCA76CE09B30508','YCA76CE09B30606','YCA76CE09B50706','YCA76CE09B50301','YCA76CE07A70205','YCA76CE0FB70205','YCA76CE0AA80208','YCA76CE0EC20605','YCA76CE0FA20308','YCA76CE09B10101','YCA76CE09C40103','YCA76CE08B70608','YCA76CE03A80604','YCA76CE03A80200','YCA76CE03C50408','YCA76CE0AB60706','YCA76CE03A80104','YCA76CE03A80103','YCA76CE08A40309','YCA76CE03C40501','YCA76CE08B80602','YCA76CE0EB30508','YCA76CE06A70500','YCA76CE08C50006','YCA76CE0FB90705','YCA76CE0EC50601','YCA76CE03A80003','YCA76CE07A10504','YCA76CE0FA30306','YCA76CE0FA40504','YCA76CE07A20101','YCA76CE07A20704','YCA76CE0FB80105','YCA76CE0FA40301','YCA76CE07A20106','YCA76CE07B00604','YCA76CE0FC00703','YCA76CE0EC00309','YCA76CE09B50602','YCA76CE03A10407','YCA76CE08B40706','YCA76CE08C40500','YCA76CE09A80509','YCA76CE0FA10607','YCA76CE08C40705','YCA76CE0DB90005','YCA76CE0CA70308','YCA76CE0AC50601','YCA76CE03C00309','YCA76CE03C00101','YCA76CE0CA70608','YCA76CE03C00503','YCA76CE0CA70303','YCA76CE08A50509','YCA76CE08A30101','YCA76CE08A30304','YCA76CE0DB30605','YCA76CE08A60005','YCA76CE08A20306','YCA76CE08A20404','YCA76CE0DB90201','YCA76CE0CA60407','YCA76CE0DB00306','YCA76CE0DB30604','YCA76CE08B20607','YCA76CE0DB00605','YCA76CE08B00303','YCA76CE08B00604','YCA76CE08A20102','YCA76CE08A40401','YCA76CE08A40404','YCA76CE08B30308','YCA76CE08B20204','YCA76CE0BB10108','YCA76CE03A30206','YCA76CE08B20005','YCA76CE0AA50103','YCA76CE0AA50401','YCA76CE03C20306','YCA76CE08B60406','YCA76CE08C00301','YCA76CE0DA70103','YCA76CE08B30706','YCA76CE08C00203','YCA76CE08C00605','YCA76CE0DA70203','YCA76CE08B60304','YCA76CE08B80309','YCA76CE08C00308','YCA76CE03C10402','YCA76CE0BA30206','YCA76CE0CB90507','YCA76CE0BC10006','YCA76CE03A40601','YCA76CE06C50608','YCA76CE09A10400','YCA76CE0AA60602','YCA76CE06C50405','YCA76CE06B60407','YCA76CE0AA80601','YCA76CE06B10703','YCA76CE09B60003','YCA76CE0AB80005','YCA76CE06C50209','YCA76CE09B60503','YCA76CE0AB80308','YCA76CE0CB10401','YCA76CE0CB10104','YCA76CE0CB10105','YCA76CE06B80306','YCA76CE0CB10601','YCA76CE0AC10704','YCA76CE09C20205','YCA76CE09A30608','YCA76CE09A30503','YCA76CE0CB90306','YCA76CE09A30604','YCA76CE09A30605','YCA76CE0AC10703','YCA76CE09A30005','YCA76CE0CB10205','YCA76CE0AC10406','YCA76CE0CB10508','YCA76CE0AC40203','YCA76CE0AC40209','YCA76CE09B80608','YCA76CE0BB10203','YCA76CE0CB90105','YCA76CE0BB10505','YCA76CE0CB90504','YCA76CE03C00304','YCA76CE0AB20508','YCA76CE09C20605','YCA76CE0AB20502','YCA76CE09A70706','YCA76CE0DB80206','YCA76CE0AA60409','YCA76CE07B80405','YCA76CE03C50402','YCA76CE0CB80603','YCA76CE03C20205','YCA76CE03C20407','YCA76CE03C20303','YCA76CE0AB70303','YCA76CE0AB70305','YCA76CE0AB70004','YCA76CE0CB80504','YCA76CE08A70105','YCA76CE03A40504','YCA76CE03B20104','YCA76CE0BC10307','YCA76CE0AA50102','YCA76CE03B20408','YCA76CE06C00209','YCA76CE03A90406','YCA76CE0CC40307','YCA76CE0CC40505','YCA76CE0AB70107','YCA76CE08B60607','YCA76CE0CA60005','YCA76CE08B40409','YCA76CE09C40202','YCA76CE0AC00705','YCA76CE0EB20307','YCA76CE0AB80606','YCA76CE03B00401','YCA76CE0EB20309','YCA76CE07C30404','YCA76CE09A60307','YCA76CE09A60405','YCA76CE09A60300','YCA76CE0AA70504','YCA76CE0AA40307','YCA76CE0AA40508','YCA76CE0CB70604','YCA76CE0AA40403','YCA76CE0AB60307','YCA76CE06A50608','YCA76CE06A50101','YCA76CE0EC00605','YCA76CE06B20704','YCA76CE0AB50607','YCA76CE06B20507','YCA76CE0DA20308','YCA76CE06C50303','YCA76CE09C10403','YCA76CE0AB70402','YCA76CE0AB70704','YCA76CE0AA40201','YCA76CE0AB70300','YCA76CE08C20500','YCA76CE06B80603','YCA76CE0CB90703','YCA76CE09A90500','YCA76CE0AC10605','YCA76CE06B10503','YCA76CE08B40601','YCA76CE06C00402','YCA76CE06C00505','YCA76CE06B10506','YCA76CE06C00400','YCA76CE06B40105','YCA76CE06B40200','YCA76CE06A50209','YCA76CE0AA20103','YCA76CE03B60406','YCA76CE0AA20509','YCA76CE07B80401','YCA76CE03B60601','YCA76CE09A40601','YCA76CE07B60400','YCA76CE03C50507','YCA76CE03B30308','YCA76CE03B30303','YCA76CE03C50209','YCA76CE03C50604','YCA76CE03C20206','YCA76CE03C20403','YCA76CE03C20606','YCA76CE03C20503','YCA76CE03C10405','YCA76CE0DC00500','YCA76CE0DC00006','YCA76CE0DA20608','YCA76CE09B40606','YCA76CE0CA10308','YCA76CE0DB10202','YCA76CE0DB10509','YCA76CE03C10505','YCA76CE08C10506','YCA76CE08C10405','YCA76CE08C10703','YCA76CE0CA10003','YCA76CE0CB20101','YCA76CE0CB20303','YCA76CE03C10705','YCA76CE07B30202','YCA76CE0CA10309','YCA76CE08B90704','YCA76CE0DB70402','YCA76CE0CB20404','YCA76CE07A30205','YCA76CE07A30401','YCA76CE07A30508','YCA76CE0DA30706','YCA76CE06B50201','YCA76CE08C10403','YCA76CE0FB30102','YCA76CE0EC50504','YCA76CE0FB40303','YCA76CE0EC50108','YCA76CE03A20602','YCA76CE03A20408','YCA76CE0EC10406','YCA76CE08C30102','YCA76CE03A50509','YCA76CE03C30305','YCA76CE0EC10601','YCA76CE03B60606','YCA76CE0FC40303','YCA76CE0EB00301','YCA76CE0FB60003','YCA76CE03B30603','YCA76CE0EC30405','YCA76CE0CC20605','YCA76CE07B60404','YCA76CE0AA60705','YCA76CE07C10104','YCA76CE08C30200','YCA76CE09B00308','YCA76CE06C40703','YCA76CE0CA30201','YCA76CE0EC00204','YCA76CE0EB10204','YCA76CE0CA50704','YCA76CE0EB00102','YCA76CE0EC00301','YCA76CE08B50200','YCA76CE0AC00703','YCA76CE0CB90204','YCA76CE0AB20705','YCA76CE06B60205','YCA76CE09C10407','YCA76CE0DA50505','YCA76CE0AA50606','YCA76CE09C00003','YCA76CE06B10501','YCA76CE06B10407','YCA76CE03B60309','YCA76CE07B80300','YCA76CE0CA30404','YCA76CE0CA30607','YCA76CE0DB90304','YCA76CE09B00202','YCA76CE0CA60706','YCA76CE08A40408','YCA76CE0CA60602','YCA76CE0CA60402','YCA76CE09C40205','YCA76CE0AA30704','YCA76CE0AC00209','YCA76CE0CC20102','YCA76CE06C40705','YCA76CE0AC10705','YCA76CE03A30308','YCA76CE03A30003','YCA76CE0CA40601','YCA76CE0CA60203','YCA76CE08A50306','YCA76CE09C30301') AND OPER_CODE = 'A7100-00' THEN 'Pol RW' WHEN DIE_ID IN ( 'YCA76CE0AC00005','YCA76CE0FB00603','YCA76CE03A90408','YCA76CE08B30206','YCA76CE0CB60207','YCA76CE06B50107','YCA76CE08B00005','YCA76CE0BA30303','YCA76CE07A30407','YCA76CE0BA30403','YCA76CE0HA40003','YCA76CE07A60606','YCA76CE07B30301','YCA76CE0AA80604','YCA76CE06B60104','YCA76CE08A60607','YCA76CE08A40103','YCA76CE03A90503','YCA76CE0CB70400','YCA76CE09C30406','YCA76CE08C10608','YCA76CE0CA10501','YCA76CE03B30307','YCA76CE08A70301','YCA76CE06C40601','YCA76CE09C30102','YCA76CE09C20502','YCA76CE0CA60101','YCA76CE0CA60106','YCA76CE0DB90404','YCA76CE0CA60206','YCA76CE09A30308','YCA76CE07B60605','YCA76CE08A30004','YCA76CE06B70304','YCA76CE03B00201','YCA76CE0AA20207','YCA76CE0AA20509','YCA76CE03C10405','YCA76CE0FA70505','YCA76CE0AC10307','YCA76CE0DB70505','YCA76CE0DB70509','YCA76CE0AB10005','YCA76CE0AB70500','YCA76CE0AA70508','YCA76CE09B00402','YCA76CE03C20204','YCA76CE0AB60601','YCA76CE0AB70706','YCA76CE0AC40005','YCA76CE0AC40104','YCA76CE0BB10306','YCA76CE06A20500','YCA76CE0AB60408','YCA76CE0AB60304','YCA76CE0AB40509','YCA76CE0AB40705','YCA76CE0DA50504','YCA76CE0CA40501','YCA76CE0CA40704','YCA76CE0AA50503','YCA76CE09B20502','YCA76CE03C50608','YCA76CE06A70004','YCA76CE06A50506','YCA76CE06B40400','YCA76CE06A50403','YCA76CE0CB40502','YCA76CE0CB40509','YCA76CE06A70106','YCA76CE03B70402','YCA76CE09A20409','YCA76CE06C40504','YCA76CE03A40004','YCA76CE08B90606','YCA76CE0AA70704' )AND OPER_CODE = 'G2500-00' THEN 'Pol RW' ELSE DEFECT_NAME END AS NEW_DEFECT_NAME FROM EDBADM.DWT_DEFECT_DIE WHERE 1=1 ${if(len(WAFER_ID)=0," and WAFER_ID in ('')"," and WAFER_ID in ('"+replace(WAFER_ID," ","','")+"')")} )A WHERE OPER_GROUP IS NOT NULL AND DIE_ID NOT IN ('YCA76CE0AA70401','YCA76CE03A30303','YCA76CE03A30305','YCA76CE03B30207','YCA76CE06C40204','YCA76CE06C40206','YCA76CE06C40208','YCA76CE03C50207','YCA76CE03C20103','YCA76CE03C50301','YCA76CE06C40401','YCA76CE06C40409','YCA76CE03C50502','YCA76CE06A20306','YCA76CE0AC00606','YCA76CE0AC10004','YCA76CE09A20505','YCA76CE09A90200','YCA76CE0CA40308','YCA76CE0DB90400','YCA76CE09A20602','YCA76CE09A20608','YCA76CE0CA40502','YCA76CE0CA40504','YCA76CE0DB90403','YCA76CE09A90400','YCA76CE0AB70503','YCA76CE0AB70504','YCA76CE0DB90606','YCA76CE0DB90608','YCA76CE0CB10102','YCA76CE09A30601','YCA76CE0CB10201','YCA76CE0CB80003','YCA76CE09B00209','YCA76CE0AA70706','YCA76CE0CB80505','YCA76CE09C30505','YCA76CE0AB90307','YCA76CE0CA60509','YCA76CE0CB90206','YCA76CE09C40106','YCA76CE0AA50203','YCA76CE0AA50107','YCA76CE0AA50202','YCA76CE09B20304','YCA76CE09C40502','YCA76CE09C40607','YCA76CE0AB50500','YCA76CE0CC20205','YCA76CE09C40608','YCA76CE0AB50603','YCA76CE0CC20304','YCA76CE0CC20306','YCA76CE0AA50507','YCA76CE0CC20602','YCA76CE0AB10301','YCA76CE0AC00506','YCA76CE0AC00507','YCA76CE09C30506','YCA76CE09C40107','YCA76CE09C40606','YCA76CE0AB90207','YCA76CE0AB90401','YCA76CE0AC10003','YCA76CE0AC10005','YCA76CE0AC10201','YCA76CE0AC10209','YCA76CE0AC40106','YCA76CE0BB10500','YCA76CE0CA40602','YCA76CE0CA60403','YCA76CE0CB80108','YCA76CE0CC20402','YCA76CE0DB90500','YCA76CE0DB90302','YCA76CE03C50206','YCA76CE03B30006','YCA76CE03C50504','YCA76CE03C50605','YCA76CE06B80200','YCA76CE06B80406','YCA76CE06C40101','YCA76CE06C40200','YCA76CE06C40301','YCA76CE08A30506','YCA76CE03C20401','YCA76CE06A20302','YCA76CE06A20308','YCA76CE06C40502','YCA76CE06C40508','YCA76CE09A70508','YCA76CE08A20504','YCA76CE09A90108','YCA76CE09A90300','YCA76CE09A20603','YCA76CE09A90601','YCA76CE09B00208','YCA76CE09B00309','YCA76CE09C30003','YCA76CE09C30106','YCA76CE09C30403','YCA76CE09C30504','YCA76CE0AA70201','YCA76CE0AA70400','YCA76CE0AB40209','YCA76CE0AB70104','YCA76CE0AB90402','YCA76CE0AB90500','YCA76CE0AB90505','YCA76CE0AB90703','YCA76CE03B00302','YCA76CE03B00304','YCA76CE03B20508','YCA76CE03B00104','YCA76CE03B00408','YCA76CE03B20004','YCA76CE03B20102','YCA76CE03B20604','YCA76CE03B00704','YCA76CE03B20208','YCA76CE03B40309','YCA76CE06B20703','YCA76CE06B20308','YCA76CE06B20401','YCA76CE06B20506','YCA76CE06A70703','YCA76CE06C30108','YCA76CE03B60304','YCA76CE06B90106','YCA76CE06C50603','YCA76CE07A30505','YCA76CE06B60401','YCA76CE06A50204','YCA76CE06A50206','YCA76CE06B20103','YCA76CE03B40604','YCA76CE06A50404','YCA76CE06B40503','YCA76CE07B80608','YCA76CE06B40705','YCA76CE0AA20303','YCA76CE0CB00608','YCA76CE09C30300','YCA76CE09C30304','YCA76CE0AB40504','YCA76CE0BC10602','YCA76CE09C40201','YCA76CE0DA30507','YCA76CE0AC00405','YCA76CE0AC50502','YCA76CE0CB40506','YCA76CE09A10703','YCA76CE0BA90403','YCA76CE0CA50601','YCA76CE0CB40203','YCA76CE0CB40305','YCA76CE03A30101','YCA76CE03B00207','YCA76CE03B00208','YCA76CE03B00300','YCA76CE03B00305','YCA76CE06A50407','YCA76CE06A70104','YCA76CE03A90506','YCA76CE03A90704','YCA76CE03B20505','YCA76CE03B20705','YCA76CE03B50505','YCA76CE03B50407','YCA76CE03C10200','YCA76CE06B20005','YCA76CE06B20105','YCA76CE06B20206','YCA76CE06B20208','YCA76CE06B40601','YCA76CE06B40703','YCA76CE06C30506','YCA76CE07B30502','YCA76CE07B80504','YCA76CE08B10300','YCA76CE06B20406','YCA76CE06B60507','YCA76CE06C00608','YCA76CE07C30006','YCA76CE0AA10301','YCA76CE03A90501','YCA76CE03A90206','YCA76CE03A90300','YCA76CE03B40408','YCA76CE03B30202','YCA76CE03C20203','YCA76CE03C20402','YCA76CE06A50105','YCA76CE03B40602','YCA76CE06A50207','YCA76CE06A50401','YCA76CE06A50405','YCA76CE06B20605','YCA76CE0AA60303','YCA76CE09B40205','YCA76CE0CB70406','YCA76CE09B60706','YCA76CE0DB80301','YCA76CE0AB20503','YCA76CE0DB80505','YCA76CE06A50409','YCA76CE06A50500','YCA76CE03B00106','YCA76CE03B20407','YCA76CE06B40602','YCA76CE07B60406','YCA76CE03C20703','YCA76CE06B20405','YCA76CE06B20502','YCA76CE06B70101','YCA76CE06B70401','YCA76CE07B80602','YCA76CE07B10201','YCA76CE0AA30403','YCA76CE0AB70206','YCA76CE0AB70502','YCA76CE03B00303','YCA76CE0CB70509','YCA76CE06A50005','YCA76CE0AB20407','YCA76CE06B20505','YCA76CE03B30406','YCA76CE09A90207','YCA76CE0AB50601','YCA76CE0DB90605','YCA76CE03C00204','YCA76CE09A90501','YCA76CE03C50403','YCA76CE0BB10402','YCA76CE0AA50004','YCA76CE09B00507','YCA76CE0HA40703','YCA76CE08B30407','YCA76CE03B30606','YCA76CE03A90209','YCA76CE0AC20209','YCA76CE06C40006','YCA76CE0HA40208','YCA76CE06B20209','YCA76CE0AB70301','YCA76CE06B20205','YCA76CE0DB30308','YCA76CE0AB50503','YCA76CE03C50401','YCA76CE09A90106','YCA76CE09C30705','YCA76CE0AB10402','YCA76CE08A50706','YCA76CE06A20704','YCA76CE08B30102','YCA76CE09A90406','YCA76CE0AC10306','YCA76CE09A90204','YCA76CE09A90304','YCA76CE0DA50400','YCA76CE0AB90704','YCA76CE0AC10304','YCA76CE09B00505','YCA76CE09A90206','YCA76CE0AB20305','YCA76CE03C10102','YCA76CE03B20606','YCA76CE08B30403','YCA76CE09C10405','YCA76CE09A30505','YCA76CE08B30107','YCA76CE0DB50300','YCA76CE09B00603','YCA76CE0CA40608','YCA76CE03A30105','YCA76CE09B00605','YCA76CE0AB50703','YCA76CE0AC40306','YCA76CE0CB70602','YCA76CE06B20101','YCA76CE0AB50205','YCA76CE03B00500','YCA76CE03B00103','YCA76CE0DA70308','YCA76CE03B00603','YCA76CE03C20202','YCA76CE08A40207','YCA76CE0AB10302','YCA76CE0DA50302','YCA76CE0CA60503') --剔除良率 AND NOT(DIE_ID IN ('YCA76CE0EC00601','YCA76CE0EC00303','YCA76CE0CA80601','YCA76CE03A90201','YCA76CE0EB30604','YCA76CE0EB30507','YCA76CE0EB30204','YCA76CE03B00504','YCA76CE0FC50107','YCA76CE0EB30006','YCA76CE07C40502','YCA76CE07C40503','YCA76CE0CC40006','YCA76CE0AB10102','YCA76CE0AB40408','YCA76CE0AB40103','YCA76CE0AA90103','YCA76CE0AA30503','YCA76CE0AB40305','YCA76CE0AA90706','YCA76CE0AA90004','YCA76CE08C40706','YCA76CE0FA40308','YCA76CE03A70608','YCA76CE0CA50105','YCA76CE0AB40309','YCA76CE03C40105','YCA76CE07C10509','YCA76CE0AC50704','YCA76CE03B70501','YCA76CE0AC50604','YCA76CE0AC50003','YCA76CE07C10400','YCA76CE0FB60205','YCA76CE0FB10705','YCA76CE0FB10405','YCA76CE09B50200','YCA76CE09B50101','YCA76CE03A10204','YCA76CE07C00306','YCA76CE0AA40304','YCA76CE08B70105','YCA76CE0CB40303','YCA76CE07B80508','YCA76CE03A10205','YCA76CE09B50704','YCA76CE0EB30307','YCA76CE0EC00203','YCA76CE08C40300','YCA76CE09B50604','YCA76CE09B50601','YCA76CE09B50500','YCA76CE09B50603','YCA76CE0DB60606','YCA76CE09B30601','YCA76CE09B30507','YCA76CE09B30602','YCA76CE09B30502','YCA76CE09B30506','YCA76CE09B30508','YCA76CE09B30606','YCA76CE09B50706','YCA76CE09B50301','YCA76CE07A70205','YCA76CE0FB70205','YCA76CE0AA80208','YCA76CE0EC20605','YCA76CE0FA20308','YCA76CE09B10101','YCA76CE09C40103','YCA76CE08B70608','YCA76CE03A80604','YCA76CE03A80200','YCA76CE03C50408','YCA76CE0AB60706','YCA76CE03A80104','YCA76CE03A80103','YCA76CE08A40309','YCA76CE03C40501','YCA76CE08B80602','YCA76CE0EB30508','YCA76CE06A70500','YCA76CE08C50006','YCA76CE0FB90705','YCA76CE0EC50601','YCA76CE03A80003','YCA76CE07A10504','YCA76CE0FA30306','YCA76CE0FA40504','YCA76CE07A20101','YCA76CE07A20704','YCA76CE0FB80105','YCA76CE0FA40301','YCA76CE07A20106','YCA76CE07B00604','YCA76CE0FC00703','YCA76CE0EC00309','YCA76CE09B50602','YCA76CE03A10407','YCA76CE08B40706','YCA76CE08C40500','YCA76CE09A80509','YCA76CE0FA10607','YCA76CE08C40705','YCA76CE0DB90005','YCA76CE0CA70308','YCA76CE0AC50601','YCA76CE03C00309','YCA76CE03C00101','YCA76CE0CA70608','YCA76CE03C00503','YCA76CE0CA70303','YCA76CE08A50509','YCA76CE08A30101','YCA76CE08A30304','YCA76CE0DB30605','YCA76CE08A60005','YCA76CE08A20306','YCA76CE08A20404','YCA76CE0DB90201','YCA76CE0CA60407','YCA76CE0DB00306','YCA76CE0DB30604','YCA76CE08B20607','YCA76CE0DB00605','YCA76CE08B00303','YCA76CE08B00604','YCA76CE08A20102','YCA76CE08A40401','YCA76CE08A40404','YCA76CE08B30308','YCA76CE08B20204','YCA76CE0BB10108','YCA76CE03A30206','YCA76CE08B20005','YCA76CE0AA50103','YCA76CE0AA50401','YCA76CE03C20306','YCA76CE08B60406','YCA76CE08C00301','YCA76CE0DA70103','YCA76CE08B30706','YCA76CE08C00203','YCA76CE08C00605','YCA76CE0DA70203','YCA76CE08B60304','YCA76CE08B80309','YCA76CE08C00308','YCA76CE03C10402','YCA76CE0BA30206','YCA76CE0CB90507','YCA76CE0BC10006','YCA76CE03A40601','YCA76CE06C50608','YCA76CE09A10400','YCA76CE0AA60602','YCA76CE06C50405','YCA76CE06B60407','YCA76CE0AA80601','YCA76CE06B10703','YCA76CE09B60003','YCA76CE0AB80005','YCA76CE06C50209','YCA76CE09B60503','YCA76CE0AB80308','YCA76CE0CB10401','YCA76CE0CB10104','YCA76CE0CB10105','YCA76CE06B80306','YCA76CE0CB10601','YCA76CE0AC10704','YCA76CE09C20205','YCA76CE09A30608','YCA76CE09A30503','YCA76CE0CB90306','YCA76CE09A30604','YCA76CE09A30605','YCA76CE0AC10703','YCA76CE09A30005','YCA76CE0CB10205','YCA76CE0AC10406','YCA76CE0CB10508','YCA76CE0AC40203','YCA76CE0AC40209','YCA76CE09B80608','YCA76CE0BB10203','YCA76CE0CB90105','YCA76CE0BB10505','YCA76CE0CB90504','YCA76CE03C00304','YCA76CE0AB20508','YCA76CE09C20605','YCA76CE0AB20502','YCA76CE09A70706','YCA76CE0DB80206','YCA76CE0AA60409','YCA76CE07B80405','YCA76CE03C50402','YCA76CE0CB80603','YCA76CE03C20205','YCA76CE03C20407','YCA76CE03C20303','YCA76CE0AB70303','YCA76CE0AB70305','YCA76CE0AB70004','YCA76CE0CB80504','YCA76CE08A70105','YCA76CE03A40504','YCA76CE03B20104','YCA76CE0BC10307','YCA76CE0AA50102','YCA76CE03B20408','YCA76CE06C00209','YCA76CE03A90406','YCA76CE0CC40307','YCA76CE0CC40505','YCA76CE0AB70107','YCA76CE08B60607','YCA76CE0CA60005','YCA76CE08B40409','YCA76CE09C40202','YCA76CE0AC00705','YCA76CE0EB20307','YCA76CE0AB80606','YCA76CE03B00401','YCA76CE0EB20309','YCA76CE07C30404','YCA76CE09A60307','YCA76CE09A60405','YCA76CE09A60300','YCA76CE0AA70504','YCA76CE0AA40307','YCA76CE0AA40508','YCA76CE0CB70604','YCA76CE0AA40403','YCA76CE0AB60307','YCA76CE06A50608','YCA76CE06A50101','YCA76CE0EC00605','YCA76CE06B20704','YCA76CE0AB50607','YCA76CE06B20507','YCA76CE0DA20308','YCA76CE06C50303','YCA76CE09C10403','YCA76CE0AB70402','YCA76CE0AB70704','YCA76CE0AA40201','YCA76CE0AB70300','YCA76CE08C20500','YCA76CE06B80603','YCA76CE0CB90703','YCA76CE09A90500','YCA76CE0AC10605','YCA76CE06B10503','YCA76CE08B40601','YCA76CE06C00402','YCA76CE06C00505','YCA76CE06B10506','YCA76CE06C00400','YCA76CE06B40105','YCA76CE06B40200','YCA76CE06A50209','YCA76CE0AA20103','YCA76CE03B60406','YCA76CE0AA20509','YCA76CE07B80401','YCA76CE03B60601','YCA76CE09A40601','YCA76CE07B60400','YCA76CE03C50507','YCA76CE03B30308','YCA76CE03B30303','YCA76CE03C50209','YCA76CE03C50604','YCA76CE03C20206','YCA76CE03C20403','YCA76CE03C20606','YCA76CE03C20503','YCA76CE03C10405','YCA76CE0DC00500','YCA76CE0DC00006','YCA76CE0DA20608','YCA76CE09B40606','YCA76CE0CA10308','YCA76CE0DB10202','YCA76CE0DB10509','YCA76CE03C10505','YCA76CE08C10506','YCA76CE08C10405','YCA76CE08C10703','YCA76CE0CA10003','YCA76CE0CB20101','YCA76CE0CB20303','YCA76CE03C10705','YCA76CE07B30202','YCA76CE0CA10309','YCA76CE08B90704','YCA76CE0DB70402','YCA76CE0CB20404','YCA76CE07A30205','YCA76CE07A30401','YCA76CE07A30508','YCA76CE0DA30706','YCA76CE06B50201','YCA76CE08C10403','YCA76CE0FB30102','YCA76CE0EC50504','YCA76CE0FB40303','YCA76CE0EC50108','YCA76CE03A20602','YCA76CE03A20408','YCA76CE0EC10406','YCA76CE08C30102','YCA76CE03A50509','YCA76CE03C30305','YCA76CE0EC10601','YCA76CE03B60606','YCA76CE0FC40303','YCA76CE0EB00301','YCA76CE0FB60003','YCA76CE03B30603','YCA76CE0EC30405','YCA76CE0CC20605','YCA76CE07B60404','YCA76CE0AA60705','YCA76CE07C10104','YCA76CE08C30200','YCA76CE09B00308','YCA76CE06C40703','YCA76CE0CA30201','YCA76CE0EC00204','YCA76CE0EB10204','YCA76CE0CA50704','YCA76CE0EB00102','YCA76CE0EC00301','YCA76CE08B50200','YCA76CE0AC00703','YCA76CE0CB90204','YCA76CE0AB20705','YCA76CE06B60205','YCA76CE09C10407','YCA76CE0DA50505','YCA76CE0AA50606','YCA76CE09C00003','YCA76CE06B10501','YCA76CE06B10407','YCA76CE03B60309','YCA76CE07B80300','YCA76CE0CA30404','YCA76CE0CA30607','YCA76CE0DB90304','YCA76CE09B00202','YCA76CE0CA60706','YCA76CE08A40408','YCA76CE0CA60602','YCA76CE0CA60402','YCA76CE09C40205','YCA76CE0AA30704','YCA76CE0AC00209','YCA76CE0CC20102','YCA76CE06C40705','YCA76CE0AC10705','YCA76CE03A30308','YCA76CE03A30003','YCA76CE0CA40601','YCA76CE0CA60203','YCA76CE08A50306','YCA76CE09C30301') AND OPER_GROUP IN ('BE Bank','Trimming Code','Aging','Film Remove','Gamma','FT AOI','FT AOI REJ','Inital Test','FV1','Heatsink Attach','Heatsink Auto Clave','Trimming Code2','Final Test','DBT','DOT','VACS','FV2')) AND NOT(DIE_ID IN ('YCA76CE0AC00005','YCA76CE0FB00603','YCA76CE03A90408','YCA76CE08B30206','YCA76CE0CB60207','YCA76CE06B50107','YCA76CE08B00005','YCA76CE0BA30303','YCA76CE07A30407','YCA76CE0BA30403','YCA76CE0HA40003','YCA76CE07A60606','YCA76CE07B30301','YCA76CE0AA80604','YCA76CE06B60104','YCA76CE08A60607','YCA76CE08A40103','YCA76CE03A90503','YCA76CE0CB70400','YCA76CE09C30406','YCA76CE08C10608','YCA76CE0CA10501','YCA76CE03B30307','YCA76CE08A70301','YCA76CE06C40601','YCA76CE09C30102','YCA76CE09C20502','YCA76CE0CA60101','YCA76CE0CA60106','YCA76CE0DB90404','YCA76CE0CA60206','YCA76CE09A30308','YCA76CE07B60605','YCA76CE08A30004','YCA76CE06B70304','YCA76CE03B00201','YCA76CE0AA20207','YCA76CE0AA20509','YCA76CE03C10405','YCA76CE0FA70505','YCA76CE0AC10307','YCA76CE0DB70505','YCA76CE0DB70509','YCA76CE0AB10005','YCA76CE0AB70500','YCA76CE0AA70508','YCA76CE09B00402','YCA76CE03C20204','YCA76CE0AB60601','YCA76CE0AB70706','YCA76CE0AC40005','YCA76CE0AC40104','YCA76CE0BB10306','YCA76CE06A20500','YCA76CE0AB60408','YCA76CE0AB60304','YCA76CE0AB40509','YCA76CE0AB40705','YCA76CE0DA50504','YCA76CE0CA40501','YCA76CE0CA40704','YCA76CE0AA50503','YCA76CE09B20502','YCA76CE03C50608','YCA76CE06A70004','YCA76CE06A50506','YCA76CE06B40400','YCA76CE06A50403','YCA76CE0CB40502','YCA76CE0CB40509','YCA76CE06A70106','YCA76CE03B70402','YCA76CE09A20409','YCA76CE06C40504','YCA76CE03A40004','YCA76CE08B90606','YCA76CE0AA70704') AND OPER_CODE IN ('A7600-00','A7700-00','G2200-00','G2300-00','G2400-00','G4800-00','G6100-00','A7400-00','A7500-00','G4100-00','G4900-00','F1300-00','F6100-00','F6200-00','G2600-00','G4200-00','G4700-00','G4A00-00','G4600-00','G4400-00','G4500-00','G4B00-00','G4A00-01')) ), BE_OPER_DATA AS ( SELECT A.* FROM BE_BASE A LEFT JOIN ( SELECT * FROM BE_BASE WHERE RN_DIE_ID = 1 )B ON A.DIE_ID = B.DIE_ID WHERE A.OPER_SORT <= B.OPER_SORT AND A.RN_DIE_SORT = 1 ), BE_OPER_FY AS ( SELECT * FROM (SELECT A.*,B.MAX_OPER_SORT FROM BE_OPER_DATA A LEFT JOIN (SELECT DIE_ID,MIN(OPER_SORT) AS MAX_OPER_SORT from BE_OPER_DATA WHERE DIE_GRADE LIKE 'F%' GROUP BY DIE_ID)B ON A.DIE_ID = B.DIE_ID) WHERE (MAX_OPER_SORT IS NULL OR OPER_SORT <= MAX_OPER_SORT)) SELECT * FROM ( SELECT MAT_ID,OPER_SORT,OPER_NAME,TURE_IN,TURE_OUT FROM FE_OPER_FY UNION select WAFER_ID,OPER_SORT,OPER_GROUP,COUNT(DIE_ID) AS IN_PUT,SUM(CASE WHEN NEW_NEW_DEFECT_NAME = '良品' THEN 1 ELSE 0 END) AS OUT_PUT FROM BE_OPER_FY GROUP BY WAFER_ID,OPER_SORT,OPER_GROUP) ORDER BY OPER_SORT,MAT_ID

import cx_Oracle table_name_list = [ 'sys_user', 'sys_account' ] # 数据库连接信息 def get_oracle_connection(): return cx_Oracle.connect('test/dev1234@localhost:1521/devdb') def query_sql(table_name): # 查询表结构 query = f""" SELECT uc.COLUMN_NAME AS "字段名", uc.DATA_TYPE AS "数据类型", ucc.COMMENTS AS "注释", CASE WHEN pk.COLUMN_NAME IS NOT NULL THEN '是' ELSE '否' END AS "是否主键" FROM USER_TAB_COLUMNS uc LEFT JOIN USER_COL_COMMENTS ucc ON uc.TABLE_NAME = ucc.TABLE_NAME AND uc.COLUMN_NAME = ucc.COLUMN_NAME LEFT JOIN (SELECT COLUMN_NAME FROM USER_CONS_COLUMNS WHERE CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = '{table_name.upper()}' AND CONSTRAINT_TYPE = 'P')) pk ON uc.COLUMN_NAME = pk.COLUMN_NAME WHERE uc.TABLE_NAME = '{table_name.upper()}' ORDER BY uc.COLUMN_ID """ return query if __name__ == '__main__': # 数据库连接信息 connection = get_oracle_connection() with open('./table/tables.md', 'w', encoding='utf-8') as f: for table_name in table_name_list: _query = query_sql(table_name) # 执行查询并写入 Markdown 文件 with connection.cursor() as cursor: cursor.execute(_query) rows = cursor.fetchall() # 写入表名和表结构 f.write(f"## 表名:{table_name}\n\n") f.write("| 字段名 | 数据类型 | 注释 | 是否主键 |\n") f.write("| -------- | ---------------- | ---------- | -------- |\n") for row in rows: f.write(f"| {row[0]} | {row[1]} | {row[2]} | {row[3]} |\n") f.write("\n\n") # 空两行 print("导出成功,文件名:tables.md") # 关闭连接 connection.close()这样存在另一个问题,注释太长,Markdown表格不好看,我想把表名两个中文替换成实际表的名称,请修改sql

<select id="selectPipeOutAndIntoStorageStatistics" resultType="com.mom.pipe.query.dispatch.view.PipeOutAndIntoStorageStatisticsView"> select a.pallet_code, count(1) as total, sum(if(b.pipe_classify = '钢管', 1, 0)) as steel_pipe, sum(if(b.pipe_classify = '有色管', 1, 0)) as colored_pipe, sum(if(b.pipe_classify = '钢管' and a.into_storage = 1, 1, 0)) as steel_pipe_into, sum(if(b.pipe_classify = '钢管' and a.out_storage = 1, 1, 0)) as steel_pipe_out, sum(if(b.pipe_classify = '有色管' and a.into_storage = 1, 1, 0)) as colored_pipe_into, sum(if(b.pipe_classify = '有色管' and a.out_storage = 1, 1, 0)) as colored_pipe_out, sum(if(b.pipe_classify = '钢管' and a.into_storage = 1, 1, 0)) + sum(if(b.pipe_classify = '有色管' and a.into_storage = 1, 1, 0)) as total_pipe_into, sum(if(b.pipe_classify = '钢管' and a.out_storage = 1, 1, 0)) + sum(if(b.pipe_classify = '有色管' and a.out_storage = 1, 1, 0)) as total_pipe_out from pipe_info a left join pipe_material b on b.plant_area_code = a.plant_area_code and b.material_level = a.pipe_level and b.material_name = a.material where a.plant_area_code = #{query.plantAreaCode} and a.project_code = #{query.projectCode} <if test="query.palletCodeList != null and query.palletCodeList.size > 0"> and a.pallet_code in <foreach collection="query.palletCodeList" item="item" open="(" close=")" separator=","> #{item} </foreach> </if> <if test="query.processingBatchList != null and query.processingBatchList.size > 0"> and a.tech_batch_code in <foreach collection="query.processingBatchList" item="item" open="(" close=")" separator=","> #{item} </foreach> </if> <if test="query.startIntoStorageDate != null"> and a.into_storage_date >= #{query.startIntoStorageDate} </if> <if test="q

大家在看

recommend-type

TXT文件合并器一款合并文本文件的工具

TXT文件合并器,一款合并文本文件的工具,可以的。
recommend-type

Scratch语言教程&案例&相关项目资源

这篇文章为想要学习和探索Scratch编程的青少年和初学者们提供了宝贵的教程、案例以及相关项目资源,旨在帮助他们轻松入门Scratch编程,并在实践中不断提升编程能力。 文章首先聚焦于Scratch教程的介绍,强调了教程在Scratch编程学习中的重要性。通过精心挑选的一系列优质教程资源,文章引导读者逐步了解Scratch的基本界面、积木块功能以及编程逻辑等核心概念。这些教程采用图文结合的方式,使得复杂的编程概念变得简单易懂,帮助初学者快速掌握Scratch编程的基础知识。 除了基础教程,文章还深入探讨了Scratch案例学习的价值。通过展示一系列真实而有趣的Scratch案例,文章让读者了解到Scratch在动画设计、游戏制作等领域的广泛应用。这些案例不仅具有创意和趣味性,而且能够帮助读者将所学知识应用到实际项目中,提升解决实际问题的能力。 此外,文章还梳理了与Scratch相关的项目资源,为学习者提供了实践Scratch编程的机会。这些项目资源包括Scratch社区分享的项目、学校或教育机构的实践项目等,为学习者提供了丰富的实战演练场景。通过参与这些项目,学习者不仅可以锻炼编
recommend-type

Xilinx 7系列FPGA手册[打包下载]

Xilinx 7系列FPGA手册打包下载,包括以下手册: 1)ug470_7Series_Config.pdf 2)ug471_7Series_SelectIO.pdf 3)ug472_7Series_Clocking.pdf 4)ug473_7Series_Memory_Resources.pdf 5)ug474_7Series_CLB.pdf 6)ug479_7Series_DSP48E1.pdf 7)ug480_7Series_XADC.pdf 8)ug482_7Series_GTP_Transceivers.pdf
recommend-type

filter LTC1068 模块AD设计 Altium设计 硬件原理图+PCB文件.rar

filter LTC1068 模块AD设计 Altium设计 硬件原理图+PCB文件,2层板设计,Altium Designer 设计的工程文件,包括完整的原理图及PCB文件,可以用Altium(AD)软件打开或修改,可作为你产品设计的参考。
recommend-type

谐响应分析步骤-ANSYS谐响应分析

谐响应分析 第三节:步骤 四个主要步骤: 建模 选择分析类型和选项 施加谐波载荷并求解 观看结果

最新推荐

recommend-type

Mysql元数据如何生成Hive建表语句注释脚本详解

LEFT JOIN TABLES t2 ON t1.TABLE_NAME = t2.TABLE_NAME WHERE t1.TABLE_NAME = 'o_oms_statistic_profit' ) t ) t; ``` 这个脚本会生成一个`CREATE TABLE`语句,包括表名、表注释和字段定义。同样,记得替换`...
recommend-type

学籍管理系统C语言实训报告.doc

学籍管理系统C语言实训报告.doc
recommend-type

全面解析SOAP库包功能与应用

从给定的文件信息中,我们可以提取到的核心知识点主要集中在“SOAP”这一项技术上,由于提供的信息量有限,这里将尽可能详细地解释SOAP相关的知识。 首先,SOAP代表简单对象访问协议(Simple Object Access Protocol),是一种基于XML的消息传递协议。它主要用于在网络上不同应用程序之间的通信。SOAP定义了如何通过HTTP和XML格式来构造消息,并规定了消息的格式应遵循XML模式。这种消息格式使得两个不同平台或不同编程语言的应用程序之间能够进行松耦合的服务交互。 在分布式计算环境中,SOAP作为一种中间件技术,可以被看作是应用程序之间的一种远程过程调用(RPC)机制。它通常与Web服务结合使用,Web服务是使用特定标准实现的软件系统,它公开了可以通过网络(通常是互联网)访问的API。当客户端与服务端通过SOAP进行通信时,客户端可以调用服务端上特定的方法,而不需要关心该服务是如何实现的,或者是运行在什么类型的服务器上。 SOAP协议的特点主要包括: 1. **平台无关性**:SOAP基于XML,XML是一种跨平台的标准化数据格式,因此SOAP能够跨越不同的操作系统和编程语言平台进行通信。 2. **HTTP协议绑定**:虽然SOAP协议本身独立于传输协议,但是它通常与HTTP协议绑定,这使得SOAP能够利用HTTP的普及性和无需额外配置的优势。 3. **消息模型**:SOAP消息是交换信息的载体,遵循严格的结构,包含三个主要部分:信封(Envelope)、标题(Header)和正文(Body)。信封是消息的外壳,定义了消息的开始和结束;标题可以包含各种可选属性,如安全性信息;正文则是实际的消息内容。 4. **错误处理**:SOAP提供了详细的错误处理机制,可以通过错误码和错误信息来描述消息处理过程中的错误情况。 5. **安全性和事务支持**:SOAP协议可以集成各种安全性标准,如WS-Security,以确保消息传输过程中的安全性和完整性。同时,SOAP消息可以包含事务信息,以便于服务端处理事务性的业务逻辑。 在描述中提到的“所有库包”,这可能意味着包含了SOAP协议的实现、相关工具集或库等。由于信息不足,这里的“库包”具体指的是什么并不清楚,但可以理解为与SOAP相关的软件开发工具包(SDK)或框架,它们使得开发者可以更加方便地创建SOAP消息,处理SOAP请求和响应,以及实现Web服务。 至于“压缩包子文件的文件名称列表”中只有一个单词“soap”,这可能表明实际文件内容仅有一个与SOAP相关的文件,或者是一个压缩包文件的名称为“soap”。由于缺乏更详尽的文件列表,无法进一步分析其可能的内容。 综上所述,SOAP作为一种实现Web服务的技术标准,通过HTTP和XML实现系统间的通信。它支持跨平台、跨语言的服务调用,并具备强大的安全性和错误处理机制。在具体应用中,开发者可能需要用到与之相关的库包或工具集来开发和部署Web服务。
recommend-type

编程语言选择指南:为不同项目量身定制的编程语言策略

# 摘要 选择合适的编程语言对于软件项目的成功至关重要。本文首先探讨了编程语言选择的重要性,并对不同分类和特点的编程语言进行了详尽分析,重点介绍了静态与动态类型、解释型与编译型、面向对象与函数式编程语言的区别和应用场景。接着,文章根据项目需求详细讨论了如何选择适合的编程语言,包括功能需求、性能考量、开发效率和团队技能等关键因素。通过实践案例分析,本文进一步探讨了不同
recommend-type

手写vue2的插件vue-router

<think>我们正在手写一个简化版的vue-router插件,用于Vue2。主要步骤:1.定义一个类VueRouter,包含路由映射、当前路由状态等。2.实现install方法,用于Vue.use()安装插件,在install方法中:-混入beforeCreate生命周期钩子,在组件创建时初始化router。-全局注册router-view和router-link组件。3.实现路由映射:将路由配置转换为路径与组件的映射表。4.监听hashchange事件(或者使用history模式,这里以hash模式为例)来响应路由变化。5.实现router-view组件,根据当前路由渲染对应组件。6.实现
recommend-type

《软件工程:实践者的方法》第6版课件解析

根据提供的文件信息,我们可以推断出以下知识点: 1. 课程名称:“SOFTWARE ENGINEERING A practitioner's approach 6e”,表明这是关于软件工程的课程教材,第6版,针对实践者的教学方法。 2. 版本信息:由于标题中明确指出是第6版(6e),我们知道这是一系列教科书或课件的最新版本,这意味着内容已经根据最新的软件工程理论和实践进行了更新和改进。 3. 课程类型:课程是针对“practitioner”,即实践者的,这表明教材旨在教授学生如何将理论知识应用于实际工作中,注重解决实际问题和案例学习,可能包含大量的项目管理、需求分析、系统设计和测试等方面的内容。 4. 适用范围:文件描述中提到了“仅供校园内使用”,说明这个教材是专为教育机构内部学习而设计的,可能含有某些版权保护的内容,不允许未经授权的外部使用。 5. 标签:“SOFTWARE ENGINEERING A practitioner's approach 6e 软件工程”提供了关于这门课程的直接标签信息。标签不仅重复了课程名称,还强化了这是关于软件工程的知识。软件工程作为一门学科,涉及软件开发的整个生命周期,从需求收集、设计、编码、测试到维护和退役,因此课程内容可能涵盖了这些方面。 6. 文件命名:压缩包文件名“SftEng”是“SOFTWARE ENGINEERING”的缩写,表明该压缩包包含的是软件工程相关的教材或资料。 7. 关键知识点:根据标题和描述,我们可以推测课件中可能包含的知识点有: - 软件工程基础理论:包括软件工程的定义、目标、原则和软件开发生命周期的模型。 - 需求分析:学习如何获取、分析、记录和管理软件需求。 - 系统设计:涉及软件架构设计、数据库设计、界面设计等,以及如何将需求转化为设计文档。 - 实现与编码:包括编程语言的选择、代码编写规范、版本控制等。 - 测试:软件测试的原则、方法和测试用例的设计。 - 项目管理:时间管理、团队协作、风险管理、成本估算等与软件项目成功相关的管理活动。 - 质量保证:软件质量模型、质量度量和质量控制措施。 - 维护和演化:软件部署后如何进行持续维护、升级和系统退役。 - 软件工程的新兴领域:包括敏捷开发方法、DevOps、用户体验设计等现代软件开发趋势。 8. 版权和使用限制:由于是专供校园内使用的教材,课件可能包含版权声明和使用限制,要求用户在没有授权的情况下不得对外传播和用于商业用途。 综上所述,这门课程的课件是为校园内的学生和教职员工设计的,关于软件工程的全面教育材料,覆盖了理论知识和实践技巧,并且在版权方面有所限制。由于是最新版的教材,它很可能包含了最新的软件工程技术和方法论。
recommend-type

QUARTUS II 13.0全攻略:新手到专家的10个必备技能

# 摘要 本文旨在详细介绍QUARTUS II 13.0软件的使用,包括其安装、FPGA基础、项目设置、设计流程、高级功能应用
recommend-type

IllegalArgumentException.class

<think>首先,用户的问题是:“我想查找与Java中IllegalArgumentException类相关的信息请问Java IllegalArgumentExceptionclass usageand examples”。这翻译成英文是:“Iwant tofind informationrelated tothe IllegalArgumentExceptionclass inJava.Please provideusage andexamples ofJavaIllegalArgumentException class.” 根据系统级指令:-所有行内数学表达式必须使用$...$格式,
recommend-type

高效进程监控工具的探索与应用

根据提供的文件信息,我们可以推断出一系列与“监控进程东东”相关的知识点。这些信息暗示了该工具可能是一个用来监控操作系统中运行的进程的应用程序。以下是对这些知识点的详细说明: ### 标题知识点: 1. **监控进程的意义**:在IT行业中,监控进程是指持续跟踪系统中运行的进程状态和行为。进程监控对于系统管理员和开发人员来说至关重要,它可以帮助他们理解系统在特定时刻的行为,以及在出现问题时快速定位问题所在。 2. **“超级好用”的含义**:这通常意味着该监控工具具有用户友好的界面、高效的性能、详细的进程信息展示以及可能具备自动化问题检测与报告的功能。超级好用还可能意味着它易于安装、配置和使用,即使是对于非技术用户。 ### 描述知识点: 1. **重复强调“超级好用”**:这种表述强调该工具的易用性和高效性,暗示它可能采用了直观的用户界面设计,以及优化过的性能,能够减少系统负载,同时提供快速且精准的进程信息。 2. **监控进程工具的常见功能**:通常包括实时进程列表显示、进程资源使用情况监控(CPU、内存、磁盘I/O、网络活动等)、进程启动和结束的跟踪、进程关联性分析(例如父子关系)、以及可能的进程安全监控。 ### 标签知识点: 1. **“监控”标签**:这个标签明确指出了工具的主要用途,即监控。在IT领域,监控是指使用特定的软件或硬件工具来持续检测和记录系统、网络或应用的性能和可用性。 ### 压缩包子文件的文件名称列表知识点: 1. **procexp.chm**:这很可能是一个帮助文件(CHM是Microsoft Compiled HTML Help文件的扩展名),提供了监控进程工具的详细用户指南、使用说明、常见问题解答和功能介绍。CHM文件是将HTML页面、索引和其他资源编译成单一文件的格式,方便用户查阅。 2. **procexp.exe**:这指的是实际的监控进程应用程序的可执行文件。EXE文件是Windows操作系统下的可执行程序文件,用户通过双击它可以启动应用程序。该程序可能包含了用于监控进程的核心功能,比如列出所有运行中的进程,显示它们的详细信息,进行性能分析等。 3. **Eula.txt**:这是一个文本文件,通常包含了最终用户许可协议(End-User License Agreement,EULA)。EULA是供应商和用户之间的法律协议,规定了软件的合法使用条件,包括用户能做什么和不能做什么,以及版权和担保声明。 ### 综合知识点: - **监控进程工具选择标准**:一个优质的监控进程工具应当包括实时更新、多层次的系统信息(如进程树、模块、句柄等)、过滤和搜索功能、安全性高以及对用户行为影响小等特点。 - **监控进程工具在不同场景下的应用**:例如,在开发过程中,开发者可以使用进程监控工具来分析应用程序运行状况,进行性能调优;在安全领域,安全专家可以利用这些工具来发现可疑进程,防止恶意软件的运行。 - **监控进程工具的未来发展**:随着技术的不断进步,监控进程工具也在不断演化,可能会集成更多的智能分析技术,如机器学习算法来预测系统问题,或者提供云平台支持,使得跨区域的进程监控成为可能。 总体来说,上述文件信息所暗示的“超级好用的监控进程东东”可能是一个集多种功能于一身的进程监控工具,它能够帮助用户有效地管理和维护计算机系统,保障其稳定性和安全性。通过提供的文件列表,我们可以得知该工具附带详细的帮助文档,以及用户可能需要的许可协议,这体现了其对用户友好性和专业性的重视。
recommend-type

【Catalyst 9800无线控制器实战手册】:从故障排查到网络优化的必备技能

# 1. Catalyst 9800无线控制器概述 Catalyst 9800无线控制器是思科公司推出的针对企业级无线网络的管理设备,它负责管理和优化无线网络环境。作为一款无线局域网控制器,9800系列在设计上集成了先进的网络功