本文將說明如何利用字串函數功能,以方便計算並查詢出LCD之生產良率偏低之玻璃基板。
將查詢不合率高於50%的玻璃基板,而一片玻璃基板可切割出8片面板,將篩選出不合格超過或等於4者,以下將列出不合格片數及不合格率等資訊。SQL語法及結果如下所示:
一片8.5代玻璃基板可以被切割成8片46吋面板(Panel),針對各面板進行檢測,將粗分合格及不合格兩種等級(字元O代表合格、X代表不合格),並將此八片測試結果以字串(如:OOXXOOXX)儲存。
對於合格率偏低的玻璃基板需進行後續相關製程分析,將測試結果字串不合格字元(X)的數量占玻璃基板面板數比率代表此玻璃基板不合格率。
Panel
1
|
Panel
2
|
Panel
3
|
Panel
4
|
Panel
5
|
Panel
6
|
Panel
7
|
Panel
8
|
將查詢不合率高於50%的玻璃基板,而一片玻璃基板可切割出8片面板,將篩選出不合格超過或等於4者,以下將列出不合格片數及不合格率等資訊。SQL語法及結果如下所示:
SQL
|
說明
|
|
ORACLE
|
SELECT GlassId
, LENGTH(TRANSLATE(Judge, '@O', '@')) "Fail(N)"
, LENGTH(TRANSLATE(Judge, '@O', '@'))
/ 8 * 100 "Fail(%)"
FROM
(
SELECT 1 GlassId, 'OXOOXXXO' Judge
FROM DUAL
UNION ALL
SELECT 2, 'OXXOXXXO'
FROM DUAL
UNION ALL
SELECT 3, 'OXOOXOOX'
FROM DUAL
)
WHERE INSTR(Judge, 'X', 1, 4) >0
|
(1) 找出良率偏低者
利用INSTR搜尋測試結果字串中第四個X(不合格)字元位置,即
INSTR(Judge, 'X', 1, 4)
若回傳值大於0,代表此玻璃基板至少有四片面板不合格
(2) 計算不合格片數及良率
採用TRANSLATE函數,利用其無法對應者則空白字元取代的特性,將O(合格)置換為空白字元,剩餘字元數即代表不合格。
另外也可使用REPLACE函數,方法與MSSQL雷同。
|
MSSQL
|
SELECT GlassId
, LEN(REPLACE(Judge, 'O', '')) "Fail(N)"
, 100.0 * LEN(REPLACE(Judge, 'O', ''))
/8 "Fail(%)"
FROM
(
SELECT 1
GlassId, 'OXOOXXXO' Judge
UNION ALL
SELECT 2, 'OXXOXXXO'
UNION ALL
SELECT 3, 'OXOOXOOX'
) A
WHERE LEN(REPLACE(Judge, 'O', ''))>=4
|
以REPLACE函數將合格字元(O)置換成空白字串,其餘字元即為不合格字元(X),長度即代表不合格總片數。
註:
MSSL2017雖已提供TRANSLATE函數,但函數特性與ORACLE略有不同,採用REPLACE仍屬相對簡單作法。
|
結果如下表:
GlassId
|
Fail(N)
|
Fail(%)
|
1
|
4
|
50.00
|
2
|
5
|
62.50
|
以文中所提及之INSTR及TRANSLAE函數,建議參閱延伸閱讀文章:
函數
|
資料庫
|
延伸閱讀
|
INSTR
|
ORACLE
|
|
TRANSLATE
|
ORACLE/MSSQL2017
|
沒有留言:
張貼留言