我在表格中有一个列,可以将图像与路径一起保存。
下面是一些图像路径示例:
/Products_images/Essentials/111219_Essent_Org_Red_Clsd-XL.jpg
/ul/products/1417/130514-Montecito-20-spinner-French-Roast.jpg
/ul/products/1470/130419_RodeoDrive_20HybridRed-M.jpg
/ul/newproducts/266-07-437-TVC-main.jpg
当我使用sql查询时:
select Image from Product
它返回完整的图像路径。
如何在没有图像路径的情况下从此图像列中仅获取带扩展名的图像名称。
所以我要求的结果应该是:
111219_Essent_Org_Red_Clsd-XL.jpg
130514-Montecito-20-spinner-French-Roast.jpg
130419_RodeoDrive_20HybridRed-M.jpg
266-07-437-TVC-main.jpg
有没有办法直接使用sql查询来获取它,而不是使用c#代码。
SQL Server中是否存在任何子字符串或正则表达式。
我非常感谢你的帮助。
感谢。
答案 0 :(得分:0)
一种方法 -
DECLARE @Image TABLE (Imagepath VARCHAR(2000))
INSERT INTO @Image(Imagepath)
SELECT '/Products_images/Essentials/111219_Essent_Org_Red_Clsd-XL.jpg' UNION
SELECT '/ul/products/1417/130514-Montecito-20-spinner-French-Roast.jpg' UNION
SELECT '/ul/products/1470/130419_RodeoDrive_20HybridRed-M.jpg' UNION
SELECT '/ul/newproducts/266-07-437-TVC-main.jpg'
SELECT REVERSE(SUBSTRING(REVERSE(Imagepath),1,CHARINDEX('/',REVERSE(Imagepath))-1)) FROM @Image
答案 1 :(得分:0)
你能试试吗
declare @a VARCHAR(200)
set @a = ' /Products_images/Essentials/111219_Essent_Org_Red_Clsd-XL.jpg'
select right(@a, charindex('/', reverse(@a)) - 1) as filename
在你的情况下
Select right(ColumnName, charindex('/', reverse(ColumnName)) - 1) as filename From TableName
答案 2 :(得分:0)
当您在字符串中获得图像名称和路径时,可以使用split函数获取/
试试这个:
string onlyImageName = stringFullPathAndName.Split('/').Last();
答案 3 :(得分:0)