前端3+1-41、42

41

html

题目:websocket如何做兼容处理
答案:
=描述:一个真正实现双向平等对话的服务器技术,即客户端可以向服务器发送请求,服务器也可以主动向客户端推送响应。
=为啥有兼容问题:websocket是h5的新特性,有些旧版浏览器并不支持
=如何解决兼容问题:
1、SockJS;是一个js库,类似websock的对象。会优先使用websock,若不支持则使用streaming,再不支持使用轮询。
2、Socket.IO;启用基于事件的双向通信。会优先使用websock,若不支持则使用如下替代方案:
Adobe Flash Socket(缺点:需要在服务器上打开一个额外的端口,默认为10843)
Ajax long polling
Ajax multipart streaming
Forever iframe
JSONP polling
参考:
https://www.ruanyifeng.com/blog/2017/05/websocket.html
https://blog.youkuaiyun.com/weixin_34232744/article/details/91364581

css

题目:如何让英文字母首字母大写
答案:
设置text-transform属性 = capitalize。text-transform是css2的属性,兼容性问题不大,有4个值,
capitalize - 强制每个单词的首字母转换为大写。
uppercase - 强制所有字符被转换为大写。
lowercase - 强制所有字符被转换为小写。
none - 这个关键字阻止所有字符的大小写被转换

js

题目:对IIFE的理解
答案:
=描述:IIFE,即立即调用函数表达式。第一部分定义了一个匿名函数,函数内的变量不能被外界访问;第二部分用()表示立即执行该匿名函数。执行后内部变量不会被销毁,即形成闭包。

(function(){
...
})()

=优缺点:会形成一个私有的独立作用域,其内的变量和方法不会污染全局,又不会被外部使用。但由于执行后内部变量不会释放,有内存泄露的危险;应尽量避免循环调用。

42

html

题目:解释ISISO8859-2字符集
答案: ascii拓展部分的字符集

css

题目:重置(初始化)css的作用是啥
答案: 统一各个浏览器对元素的初始样式

js

题目:window对象和document对象区别
答案:
1、window对象;浏览器窗口对象,包含了核心js的全局属性和方法
2、document对象;文档对象,是window对象的一部分。主要用来访问html元素。

WONOSTATUS|WONO |WAFERIDQTY|BINCODE|LOTWAFERID|TYPE|FABSITE|CUSTOMERCODE|PRODID |DEVICE|VENDORLOTID|T7CODE|LOTID |WAFERNO|WAFERID |FLAG |STATUS |LOTTYPE|MATERIALTYPE|VALIDDATE |CANCELDATE|MAXUSECOUNT|DUMMYSTATUS |USERID|CREATEDATE |UPDATEDATE |ISDELETE|INITQTY|QTY|INITQTYX|QTYX|MATERIALNAME |PLOCATION| ----------+---------+----------+-------+----------+----+-------+------------+--------+------+-----------+------+------+-------+---------+------+------------+-------+------------+-----------------------+----------+-----------+------------+------+-----------------------+-----------------------+--------+-------+---+--------+----+-------------+---------+ Y |NTQLSTYGQ|33 |BIN1 |Q4A527-01 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|01 |Q4A527-01|Active|IssuePending| | |2025-10-01 02:28:46.000| | 0|IssuePending| |2025-07-03 02:28:46.000|2025-07-17 09:42:57.000| 0| 0| 0| 47| 47|N680 SOC_Real| | Y |NTQLSTYGQ|29 | |Q4A527-14 | |SJ_TD | |Q341A-3A| |Q4A527.02 | |Q4A527|14 |Q4A527-14|Active|IssuePending| | |2025-10-01 09:47:30.000| | 0|IssuePending| |2025-07-03 09:47:30.000|2025-07-17 09:42:57.000| 0| | | 51| 51|N680 SOC_Real| | Y |NTQLSTYGQ|41 | |Q4A527-12 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|12 |Q4A527-12|Active|IssuePending| | |2025-10-01 02:31:11.000| | 0|IssuePending| |2025-07-03 02:31:11.000|2025-07-17 09:42:57.000| 0| | | 39| 39|N680 SOC_Real| | Y |NTQLSTYGQ|27 | |Q4A527-11 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|11 |Q4A527-11|Active|IssuePending| | |2025-10-01 02:30:57.000| | 0|IssuePending| |2025-07-03 02:30:57.000|2025-07-17 09:42:57.000| 0| | | 53| 53|N680 SOC_Real| | Y |NTQLSTYGQ|33 |BIN7 |Q4A527-10 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|10 |Q4A527-10|Active|IssuePending| | |2025-10-01 02:30:42.000| | 0|IssuePending| |2025-07-03 02:30:42.000|2025-07-17 09:42:57.000| 0| | | 47| 47|N680 SOC_Real| | Y |NTQLSTYGQ|31 | |Q4A527-09 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|09 |Q4A527-09|Active|IssuePending| | |2025-10-01 02:30:31.000| | 0|IssuePending| |2025-07-03 02:30:31.000|2025-07-17 09:42:57.000| 0| | | 49| 49|N680 SOC_Real| | Y |NTQLSTYGQ|33 | |Q4A527-08 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|08 |Q4A527-08|Active|IssuePending| | |2025-10-01 02:30:21.000| | 0|IssuePending| |2025-07-03 02:30:21.000|2025-07-17 09:42:57.000| 0| | | 47| 47|N680 SOC_Real| | Y |NTQLSTYGQ|37 | |Q4A527-05 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|05 |Q4A527-05|Active|IssuePending| | |2025-10-01 02:29:56.000| | 0|IssuePending| |2025-07-03 02:29:56.000|2025-07-17 09:42:57.000| 0| | | 43| 43|N680 SOC_Real| | Y |NTQLSTYGQ|26 | |Q4A527-02 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|02 |Q4A527-02|Active|IssuePending| | |2025-10-01 02:29:14.000| | 0|IssuePending| |2025-07-03 02:29:14.000|2025-07-17 09:42:57.000| 0| | | 54| 54|N680 SOC_Real| | Y |NTQLSTYGQ|34 | |Q4A527-24 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|24 |Q4A527-24|Active|IssuePending| | |2025-10-01 02:27:22.000| | 0|IssuePending| |2025-07-03 02:27:22.000|2025-07-17 09:42:57.000| 0| | | 46| 46|N680 SOC_Real| | Y |NTQLSTYGQ|35 | |Q4A527-23 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|23 |Q4A527-23|Active|IssuePending| | |2025-10-01 02:27:05.000| | 0|IssuePending| |2025-07-03 02:27:05.000|2025-07-17 09:42:58.000| 0| | | 45| 45|N680 SOC_Real| | Y |NTQLSTYGQ|31 | |Q4A527-22 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|22 |Q4A527-22|Active|IssuePending| | |2025-10-01 02:26:23.000| | 0|IssuePending| |2025-07-03 02:26:23.000|2025-07-17 09:42:58.000| 0| | | 49| 49|N680 SOC_Real| | Y |NTQLSTYGQ|25 | |Q4A527-20 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|20 |Q4A527-20|Active|IssuePending| | |2025-10-01 02:25:26.000| | 0|IssuePending| |2025-07-03 02:25:26.000|2025-07-17 09:42:58.000| 0| | | 55| 55|N680 SOC_Real| | Y |NTQLSTYGQ|37 | |Q4A527-19 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|19 |Q4A527-19|Active|IssuePending| | |2025-10-01 02:25:09.000| | 0|IssuePending| |2025-07-03 02:25:09.000|2025-07-17 09:42:58.000| 0| | | 43| 43|N680 SOC_Real| | Y |NTQLSTYGQ|42 | |Q4A527-17 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|17 |Q4A527-17|Active|IssuePending| | |2025-10-01 02:24:36.000| | 0|IssuePending| |2025-07-03 02:24:36.000|2025-07-17 09:42:58.000| 0| | | 38| 38|N680 SOC_Real| | Y |NTQLSTYGQ|35 | |Q4A527-16 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|16 |Q4A527-16|Active|IssuePending| | |2025-10-01 02:24:00.000| | 0|IssuePending| |2025-07-03 02:24:00.000|2025-07-17 09:42:58.000| 0| | | 45| 45|N680 SOC_Real| | Y |NTQLSTYGQ|34 | |Q4A527-15 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|15 |Q4A527-15|Active|IssuePending| | |2025-10-01 02:23:40.000| | 0|IssuePending| |2025-07-03 02:23:40.000|2025-07-17 09:42:58.000| 0| | | 46| 46|N680 SOC_Real| | Y |NTQLSTYGQ|40 | |Q4A527-06 | |SJ_TD | |Q341A-3A| |Q4A527.03 | |Q4A527|06 |Q4A527-06|Active|IssuePending| | |2025-10-01 02:22:39.000| | 0|IssuePending| |2025-07-03 02:22:39.000|2025-07-17 09:42:58.000| 0| | | 40| 40|N680 SOC_Real| | Y |NTQLSTYGQ|443 |BIN1 |Q49708-01 | |SJ_TD | |Q433A-0A| |Q49708.01 | |Q49708|01 |Q49708-01|Active|IssuePending| | |2025-08-12 02:13:02.000| | 0|IssuePending| |2025-06-28 02:13:02.000|2025-09-04 07:17:30.000| 0| 0| 0| 3| 3|N680 HBM real| | Y |NTQLSTYGQ|355 |BIN1 |Q49705-03 | |SJ_TD | |Q433A-0A| |Q49705 | |Q49705|03 |Q49705-03|Active|IssuePending| | |2025-08-17 15:40:22.000| | 0|IssuePending| |2025-07-03 15:40:22.000|2025-09-04 07:30:30.000| 0| 0| 0| 1| 1|N680 HBM real| | Y |NTQLSTYGQ|269 |BIN1 |Q49707-03 | |SJ_TD | |Q433A-0A| |Q49707.02 | |Q49707|03 |Q49707-03|Active|IssuePending| | |2025-08-12 23:57:03.000| | 0|IssuePending| |2025-06-28 23:57:03.000|2025-07-17 09:42:57.000| 0| 0| 0| 0| 0|N680 HBM real| | Y |NTQLSTYGQ|139 |BIN1 |Q49700-03 | |SJ_TD | |Q433A-0A| |Q49700 | |Q49700|03 |Q49700-03|Active|IssuePending| | |2025-08-17 10:00:05.000| | 0|IssuePending| |2025-07-03 10:00:05.000|2025-07-17 09:42:57.000| 0| 0| 0| 0| 0|N680 HBM real| | 为什么很多BIN都是空的,没找到吗?
12-18
从你提供的查询结果来看,`BINCODE` 列中确实有部分记录为空(NULL 或空白),这可能是因为以下原因导致的: --- ### ✅ 一、为什么很多 `BINCODE` 是空的? #### 1. **原始数据中 `BINCODE` 字段本身就包含空值** - 如果原始表 `tb_lsmm_wo_info_pn2m` 中的 `bincode` 字段存在 `NULL` 或 `&#39;&#39;`,那么拆分后自然会出现空值。 - 例如:`BIN1|` 或 `|BIN7` 这样的数据,在拆分时会出现空 BIN。 #### 2. **拆分逻辑未完全对齐** - 如果 `bincode`, `waferid`, `qty` 的字段数量不一致,拆分层级不匹配,可能会导致某些层级的 `bincode` 拆分为空。 - 例如:`waferid` 有 5 个值,而 `bincode` 只有 2 个值,后面层级拆分时 `bincode` 就会是空。 #### 3. **JOIN 或过滤条件导致 BINCODE 被排除** - 后续的 `LEFT JOIN tb_sj_bin_info d ON ... AND b.bincode = d.bincode` 中,如果 `b.bincode` 是空,那么 `d` 表的数据就不会匹配上,从而 `d.initQty` 等字段也可能为空。 #### 4. **数据录入不规范** - 在业务系统中,可能存在未填写 `bincode` 的情况,或者某些 `bincode` 类型不需要记录。 --- ### ✅ 二、如何验证和修复? #### 🔍 验证原始数据: ```sql SELECT bincode, waferid, qty FROM tb_lsmm_wo_info_pn2m WHERE wono = &#39;NTQLSTYGQ&#39;; ``` 查看原始 `bincode` 是否包含空值、是否与 `waferid`, `qty` 数量一致。 #### 🔍 验证拆分是否对齐: ```sql WITH split_data AS ( SELECT l.wono, REGEXP_SUBSTR(l.bincode, &#39;[^|]+&#39;, 1, b.lvl) AS bincode, REGEXP_SUBSTR(l.waferid, &#39;[^,]+&#39;, 1, b.lvl) AS waferid, REGEXP_SUBSTR(l.qty, &#39;[^,]+&#39;, 1, b.lvl) AS qty FROM tb_lsmm_wo_info_pn2m l INNER JOIN ( SELECT LEVEL AS lvl FROM DUAL CONNECT BY LEVEL <= 100 ) b ON b.lvl <= GREATEST( REGEXP_COUNT(l.bincode, &#39;[^|]+&#39;), REGEXP_COUNT(l.waferid, &#39;[^,]+&#39;), REGEXP_COUNT(l.qty, &#39;[^,]+&#39;) ) ) SELECT * FROM split_data WHERE wono = &#39;NTQLSTYGQ&#39;; ``` 查看拆分后是否出现 `bincode IS NULL`,或者拆分错位。 --- ### ✅ 三、如何修复或优化? #### ✅ 1. **过滤掉 `bincode IS NULL` 的记录** ```sql WITH split_data AS ( SELECT l.wono, REGEXP_SUBSTR(l.bincode, &#39;[^|]+&#39;, 1, b.lvl) AS bincode, REGEXP_SUBSTR(l.waferid, &#39;[^,]+&#39;, 1, b.lvl) AS waferid, REGEXP_SUBSTR(l.qty, &#39;[^,]+&#39;, 1, b.lvl) AS waferidqty, l.batchid || &#39;-&#39; || REGEXP_SUBSTR(l.waferid, &#39;[^,]+&#39;, 1, b.lvl) AS lotwaferid, l.type FROM tb_lsmm_wo_info_pn2m l INNER JOIN ( SELECT LEVEL AS lvl FROM DUAL CONNECT BY LEVEL <= 100 ) b ON b.lvl <= GREATEST( REGEXP_COUNT(l.bincode, &#39;[^|]+&#39;), REGEXP_COUNT(l.waferid, &#39;[^,]+&#39;), REGEXP_COUNT(l.qty, &#39;[^,]+&#39;) ) WHERE REGEXP_SUBSTR(l.bincode, &#39;[^|]+&#39;, 1, b.lvl) IS NOT NULL ) SELECT ... FROM ... WHERE b.bincode IS NOT NULL; ``` #### ✅ 2. **填充默认值(如 BIN_UNKNOWN)** ```sql NVL(b.bincode, &#39;BIN_UNKNOWN&#39;) AS bincode ``` #### ✅ 3. **在业务逻辑中补充 BINCODE** - 如果某些 BINCODE 可以根据 `waferid` 或 `prodid` 推断出来,可以使用 `CASE WHEN` 补充。 #### ✅ 4. **规范数据输入** - 建议前端或 ETL 流程中对 `bincode` 字段进行校验,确保与 `waferid`, `qty` 数量一致。 --- ### ✅ 四、总结 | 原因 | 说明 | 建议 | |------|------|------| | 数据为空 | 原始数据中 `bincode` 为空 | 查询验证并补全 | | 拆分错位 | 字段数量不一致 | 增加校验 | | JOIN 排除 | `b.bincode = d.bincode` 导致 | 使用 `NVL` 或 `COALESCE` | | 业务未录入 | 某些情况不需要 BIN | 增加默认值或注释 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值