有人可以帮助我解决一些我正在努力的SQL。
我需要选择包含文件名的字段的最后3个字符(因此我可以获取所述文件的扩展名)。理想情况下,我喜欢这些数值的计数。
选择一个字符串的前3个字符很简单,但我不知道如何选择最后的3个 - 文件名都是不同的长度。
谢谢。
答案 0 :(得分:4)
两种常见的方式是:
select right(filename, 3)
select substr(filename, -3)
但是,我要提醒您,并非所有文件名都有3个字符。我建议您提出另一个问题,包括您正在使用的文件名的更多信息和示例。
答案 1 :(得分:0)
如果文件扩展名不仅仅是3个字符......并且您在其他地方没有任何句号。
declare @somefile varchar(64) = '/server/folder/sub_folder/file.extension'
select
substring(@somefile,charindex('.',@somefile) + 1,99)
或者,如果文件路径中有句号可能但不明智。
declare @somefile varchar(64) = '/ser.ver/fo.lder/sub.folder/file.extension'
select
right(@someFile,charindex('.',reverse(@somefile)) - 1)