-1
我使用下面的代碼,以匹配ID號行:SQL - 創建於PARTITION層次BY語句
SELECT *,
LEAD(ORDER, 1) OVER(PARTITION BY ID_NBR) AS PREV_ORDER
FROM TABLE
在我的數據,一些身份證號碼丟失。如果(且僅當)ID號缺失,我想通過Cust_Name來匹配行。 LEAD/OVER命令有可能嗎?
謝謝,
我使用下面的代碼,以匹配ID號行:SQL - 創建於PARTITION層次BY語句
SELECT *,
LEAD(ORDER, 1) OVER(PARTITION BY ID_NBR) AS PREV_ORDER
FROM TABLE
在我的數據,一些身份證號碼丟失。如果(且僅當)ID號缺失,我想通過Cust_Name來匹配行。 LEAD/OVER命令有可能嗎?
謝謝,
也許你需要類似的東西?
with tab as (
select 1 id, 'n1' cust_name from dual
union all select 2, 'n2' from dual
union all select null, 'n3' from dual
union all select 4, 'n4' from dual
)
select id, cust_name,
lag(cust_name ignore nulls) over(order by id) prev_name,
lead(cust_name ignore nulls) over(order by id) next_name
from tab;
IGNORE NULLS - 在查找滯後/前導值時跳過NULL值。
您可以添加 「PARTITION BY山坳[山口]」 ORDER BY
它必須有ORDER BY與LAG/LEAD功能
失蹤之前,你的意思是他們是空? – radar 2014-10-20 19:39:41
ID_NBR字段爲空。 – waealu 2014-10-20 19:41:51
你能定義「匹配」嗎?什麼是'cust_name'?列'訂單'在哪裏進入?你知道'order'是一個非法列名嗎?如果您發佈了原始數據的樣本,然後再添加另一個您想要的數據樣本,則可能會使事情變得更加簡單,同時還會詳細描述如何將數據轉換爲其他數據。 – Ben 2014-10-20 20:23:21