【发布时间】:2017-01-31 22:33:16
【问题描述】:
我按照这个答案Get extension of a file using SQL? 中的示例从文件夹中的文件列表中提取扩展名。它工作得很好,但会增加 6 个额外的空间。我试过添加一个 rtrim,但这并没有帮助,除非我把它放在错误的位置。
create table images
(
id int IDENTITY(1,1) PRIMARY KEY,
PartNo char(10),
aFileName char(255),
extension char(10),
aFile char(255),
depth int,
isFile bit
)
insert images (aFile, depth, isFile)
EXEC xp_dirtree 'C:\Program Files\e-Con Solutions\e-Con 2012 R2\Web\images\coverpools', 10, 1
这会返回文件名,例如 010001.eprt
update images
SET extension = rtrim(REVERSE(
left(rtrim(REVERSE(aFile)),
case when CHARINDEX('.', REVERSE(aFile) ) = 0 then LEN(REVERSE(aFile))
else CHARINDEX('.', REVERSE(aFile))-1 end)
))
这是返回扩展 eprt###### 的代码
【问题讨论】:
-
我已经添加了 sql-server 标签,语法看起来像这样。
-
我很确定这与修剪/扩展无关,而与
char(10)无关。 -
postgresql.org/docs/current/static/datatype-character.html: "如果要存储的字符串比声明的长度短,
character类型的值将被空格填充"(我会链接MSDN SQL Server 文档,但他们实际上并没有提到这一点) -
感谢@melpomene 的快速回复。那是我的问题。
标签: sql sql-server character-trimming