gpt4 book ai didi

sql - T-SQL 从列中获取文件扩展名

转载 作者:行者123 更新时间:2023-12-02 06:49:42 25 4
gpt4 key购买 nike

我有一个表,其中有一列包含整个文件名,数据如下所示:

FilePath                       FileSize
------------------------------ --------
dsch2_chs_wyj.rar 694KB
AllInOneHash.rar 19KB
FilePropertyModifier.rar 12KB
jquery_1_7_api_chm_chs.rar 285KB
startupmgr.rar 38KB
JQueryTableExample_Edi.rar 33KB
hdpartioncalc_csharp.rar 49KB
XMLMenuTest.zip 3KB

现在我想提取文件扩展名,例如 .rar 并插入到新表中。

INSERT INTO Attachment
(
Id,
[FileName],
ExtensionName,
StoredPath,
CreateOn,
UploaderIP,
DataBinary
)
SELECT ba.Id,
ba.Title,
'{Extension Name}',
ba.FilePath,
GETDATE(),
NULL,
NULL
FROM BlogAttachment ba

但是 T-SQL 没有 LastIndexOf() 函数。如何简单地剪切子字符串?

最佳答案

您可以通过以下方式获取扩展:

 select reverse(left(reverse(FilePath), charindex('.', reverse(FilePath)) - 1))

但是,我建议您首先检查名称中是否有 '.':

 select (case when FilePath like '%.%'
then reverse(left(reverse(FilePath), charindex('.', reverse(FilePath)) - 1))
else ''
end) as Extension

关于sql - T-SQL 从列中获取文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16783026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com