【发布时间】:2022-01-05 09:53:14
【问题描述】:
我使用的是 SQL Server 2014,并且我的数据库中有一个表 (t1),其中包含一个名为“MealPlan”的列。
此列包含字符串列表(摘录如下):
MealPlan
Sansrepas315€/pers.=630€pour2pers.Devis/RésaSelectionner
Sansrepas394€/pers.=787€pour2pers.Devis/RésaSelectionner
Sansrepas547€/pers.=1 093€pour2pers.Devis/RésaSelectionner
Sansrepas547€/pers.=1 093€pour2pers.Devis/RésaSelectionner
Sansrepas700€/pers.=1 400€pour2pers.Devis/RésaSelectionner
Sansrepas328€/pers.=656€pour2pers.Devis/RésaSelectionner
我需要提取字符 = 和 €
之间的数字我有以下代码可以满足我的需要:
SUBSTRING(MealPlan,LEN(LEFT(MealPlan,CHARINDEX('=', MealPlan)+1)),LEN(MealPlan) - LEN(LEFT(MealPlan,CHARINDEX('=', MealPlan))) - LEN(RIGHT(MealPlan,CHARINDEX('€', (REVERSE(MealPlan)))))) AS [Price]
运行上面我的栏目“价格”后出现如下:
Price
630
787
1 093
1 093
1 400
656
但是,我想去掉千位数字中的那个空格。
我的预期输出:
Price
630
787
1093
1093
1400
656
我尝试了以下方法,但它不起作用:
REPLACE(SUBSTRING(MealPlan,LEN(LEFT(MealPlan,CHARINDEX('=', MealPlan)+1)),LEN(MealPlan) - LEN(LEFT(MealPlan,CHARINDEX('=', MealPlan))) - LEN(RIGHT(MealPlan,CHARINDEX('€', (REVERSE(MealPlan)))))), ' ','') AS [Price2]
任何帮助将不胜感激。
【问题讨论】:
-
一定是一个空格吗?
-
如果它只是一个空格,那么您尝试过的会奏效。所以它是别的东西。
-
@Nathan_Sav 当我复制输出并将其粘贴到 Excel 中时,它似乎是一个空格(一个仰泳将其删除)。
-
看一下“空格”位置的字符代码,看看是什么。
-
尝试将文件中的空格字符剪切'n'粘贴到 SQL 查询中,以防它是不同类型的空格?
标签: sql sql-server string