选择字符串的最后 3 个字符 SQL
Selecting the last 3 characters of a string SQL
有人可以帮我解决一些 SQL 我正在努力解决的问题吗?
我需要 select 包含文件名的字段的最后 3 个字符(以便我可以获取所述文件的扩展名)。理想情况下,我想要这些值的计数。
选择字符串的前 3 个字符很简单,但我不知道如何 select 选择最后的 3 个字符 - 文件名的长度各不相同。
谢谢。
两种常见的方式是:
select right(filename, 3)
select substr(filename, -3)
但是,我要提醒您,并非所有文件名都有 3 个字符。我建议您再问一个问题,提供更多信息和您正在使用的文件名示例。
如果文件扩展名不是只有 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)
有人可以帮我解决一些 SQL 我正在努力解决的问题吗?
我需要 select 包含文件名的字段的最后 3 个字符(以便我可以获取所述文件的扩展名)。理想情况下,我想要这些值的计数。
选择字符串的前 3 个字符很简单,但我不知道如何 select 选择最后的 3 个字符 - 文件名的长度各不相同。
谢谢。
两种常见的方式是:
select right(filename, 3)
select substr(filename, -3)
但是,我要提醒您,并非所有文件名都有 3 个字符。我建议您再问一个问题,提供更多信息和您正在使用的文件名示例。
如果文件扩展名不是只有 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)