我有一个表格中的某些字符串,如下图所示:取下SELECT查询的SQL Server
File
_________
abc.pdf
def.pdf
ghi.pdf
我想做出带回结果下面的查询:
abc
def
ghi
将如何我去做这个?
我有一个表格中的某些字符串,如下图所示:取下SELECT查询的SQL Server
File
_________
abc.pdf
def.pdf
ghi.pdf
我想做出带回结果下面的查询:
abc
def
ghi
将如何我去做这个?
在SQL Server中,你可以简单地做:
SELECT REPLACE(Filename,'.pdf','') FROM File
编号:
https://docs.microsoft.com/en-us/sql/t-sql/functions/replace-transact-sql
更新
为了防止文件名中意外删除 “.PDF” 的是更好地使用
SELECT LEFT(Filename, LEN(Filename)-4) FROM File
删除总是最后4个字符(.pdf
)
安德烈
试试下面:
SELECT LEFT(data, CHARINDEX('.', data) - 1)
或者
如果总是 '.PDF',那么就使用Replace()
功能:
select replace(data, '.pdf', '')
结果:
abc
def
ghi
您可以使用下面的一个,以消除任何扩展,动态的方式来取代任何延伸段SQL
select LEFT(Filename,CHARINDEX('.', Filename) - 1) FROM File
SELECT SUBSTRING(col1, 1, INSTR(col1, '.')-1) AS FileName from File
这将为您提供结果在动态的方式。
他们总是'.pdf'扩展名?或3个字符? – Tanner
它将永远是.pdf – peterbonar
所有文件名都是字符+扩展名吗?如果不是,请调整样本数据和结果。 – jarlh