【发布时间】:2017-01-07 01:11:24
【问题描述】:
我有一列包含一些单个值和逗号分隔值,我想通过匹配描述表来替换它们。
我有一张如下所示的表格:
文本表示:
Length Directory Extensions Extension Description Type
6684672 Y:\Data\Retail\WalmartMX\Development\Curt.Wolfe\ChristiesAnalysisTool accdb accdb Access Database Development/DB
2002944 Y:\Data\Retail\WalmartMX\Development\SourceCode\WalmartMxDecipher\APPS ACCDB accdb Access Database Development/DB
5312512 Y:\Data\Retail\WalmartMX\Development\SourceCode\AnalysisTool accdb accdb Access Database Development/DB
30986240 Y:\Data\Retail\WalmartMX\Utilities\Tracking\Stats\BAK accdb accdb Access Database Development/DB
112917071 Y:\Data\Retail\WalmartMX\Deploy\Development\SourceCode\WalmartMxDecipher accdb,accde,zip NULL NULL NULL
139053182 Y:\Data\Retail\BQ\Utilities\EMT accdb,bat,docx,laccdb,txt NULL NULL NULL
32116006 Y:\Data\Retail\WalmartMX\Utilities\Tracking\Stats accdb,bat,laccdb,sql,xlsx NULL NULL NULL
我需要替换扩展字段中的值,或者更好地创建一个新字段,其中包含来自另一个表的列表和描述。
- 匹配扩展名(可以用逗号分隔,需要全部)
- 提供一个带有描述的新字段
一个。新字段(如果扩展名是 accdb)应该是 Access 数据库(从另一个表匹配)
乙。如果有 csv,它应该读取(如果扩展名是 txt、xml)CSV 文件、TextFile(再次匹配扩展字段上的另一个表)
到目前为止的代码:
SELECT *
FROM [SandboxVinny].[dbo].[FinalDirectoryListing] FDL
left JOIN dbo.SourceExtensions SE
on SE.Extension = FDL.Extensions
显然,使用它我会为字段中具有多个文件扩展名的任何行获取空值。
【问题讨论】:
-
请查看此链接以了解如何改进问题..spaghettidba.com/2015/04/24/…
-
更新显示我的来源(文本表示)和我的预期输出。
标签: sql sql-server sql-server-2008 csv