如何从货币列中删除特殊字符(只有美元)无日期和国家



我只想拥有每部电影的钱而不是国家和日期。现在,每个人都有类似$999,046 (USA) (14 August 2011) $xxxx国家数据的东西。我只能得到$999,046, $xxx。他们有不同的日期,其中一些有(非美国(。

我只想拥有货币价值,而不是日期和国家

我不确定您正在使用的RDBMS,但是如果使用SQL Server,您总是可以执行这样的操作。

SELECT (LEFT(money_column, CHARINDEX(' ', money_column)-1) + ', ' 
  + RIGHT(money_column, CHARINDEX(' ', money_column)-1)) as money_values
FROM film_table

SQL小提琴示例

在您的示例中,似乎抓住第一个空间左侧的文本会解决问题。如果是这样,请这样做:

select case charindex(' ', moneycolumn) 
when 0 then moneycolumn
else substring(moneycolumn, 1, charindex(' ', moneycolumn)) end dollars 
from filmtable

您可以使用substring((如下 -

DECLARE @T VARCHAR(200)
SET @T = '$999,046 (USA) (14 August 2011) $xxxx'
SELECT 
    SUBSTRING(@T,0,CHARINDEX(' ',@T,0)) 
    +', '+
    SUBSTRING(@T,CHARINDEX('$',@T,CHARINDEX(' ',@T,0)),LEN(@T))

最新更新