我正在尋找可以幫助我完成一項非常具體的任務的人。
我正在分析計算機硬碟驅動器中的資料,需要能夠列出從 .zip 檔案中提取后重復的檔案夾。這是我正在處理的資料示例:
| 專案名稱 | 延期 | 物品種類 |
|---|---|---|
| 壓縮包.zip | 。壓縮 | 檔案 |
| 我的壓縮包 | 空值 | 檔案夾 |
| 個人檔案.zip | 。壓縮 | 檔案 |
| 個人檔案 | 空值 | 檔案夾 |
如您所見,擴展名“.zip”包含在“ItemName”和“Extension”列中。從 .zip 檔案中提取時,它會變成一個檔案夾。我需要一種列出 .zip 檔案或它在提取后變成的檔案夾的方法(兩者都可以,只需要在知道它是重復的情況下列出)。
需要注意的是,我的資料包含許多其他具有不同擴展名的檔案夾和檔案,例如“.docx”、“.msg”,因此查詢需要對這些進行折扣。
我希望這是有道理的 - 謝謝!
預期輸出可能如下所示:
| 專案名稱 | 延期 | 物品種類 |
|---|---|---|
| 我的壓縮包 | 空值 | 檔案夾 |
| 個人檔案 | 空值 | 檔案夾 |
所以我知道的所有檔案夾的串列在資料中有一個 .zip 等效檔案。
uj5u.com熱心網友回復:
還不確定,但你的意思是這樣的嗎?
select *
from your_table y
where ItemType = 'Folder'
and exists (
select 1 from your_table yy
where yy.Extension = '.zip'
and replace(yy.ItemName,'.zip','') = y.ItemName
)
uj5u.com熱心網友回復:
我想我得到了你需要的東西:
select ItemName
from tablename
group by replace(ItemName, isnull(Extension,''))
having case count(case when Extension = '.zip' then 1 end) > 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/370187.html
標籤:sql sql-server 查询语句 短信
