繁体   English   中英

(SQL) 如何管理用货币符号导入的列中的值?

[英](SQL) How to manage the values in a column that were imported with the currency symbol?

我正在学习 Google 数据分析课程。 在本课程中,他们教我们使用 BigQuery 的 SQL。 但是,我不想添加支付方式,所以我没有使用 BigQuery,而是使用 MySQL Server 和 MySQL Workbench。 到目前为止,我遇到了一些问题。 但是,我能够处理它们,除了一个。

好吧,我正在处理一个.csv 文件,其中包含有关电影的信息,例如电影标题、演员表、导演、发行日期、类型、预算和收入。 在本课程中,当老师将 .csv 文件上传到 BigQuery 时,它已经识别出“预算”和“收入”列中的值是指一种货币。 但是,当我将此文件上传到 MySQL 时,它会将这些值理解为文本,因为它们在每个字段中都包含一个货币符号 ($)。 这种情况使我无法根据预算或收入的数量对字段进行排序。 我该如何解决?

我的想法:

无论如何我可以简单地更新此列中的值,删除货币符号($)? 无论如何我可以以 MySQL 理解这些值是什么的方式再次导入 .csv 文件吗?

@酒保

我真的是 SQL 的新手。 我试过: SELECT budget = REPLACE(@budget, '$', '') FROM customer_data.movie_data; 结果,MySQL 向我显示了 508 行具有 NULL 值。

@Barman 现在我尝试了以下查询:

SELECT 
    REPLACE(budget, '$', '') AS new_budget
FROM customer_data.movie_data

结果,MySQL 向我显示了所有没有货币符号的行。 但是,如何使用此新信息更新“预算”列?

最终答案//最终版

UPDATE customer_data.movie_data
SET 
    revenue = REPLACE(revenue, '$', ''),
    budget = REPLACE(budget, '$', ''),
    budget = REPLACE (budget, ',', ''),
    revenue = REPLACE(revenue, ',', '');

然后 > alter table > TEXT to DECIMAL (40,2) 就是这样。 我想没有一些工作要做是不可能的。 我希望它能帮助别人!

最终答案 // 最终版:

UPDATE customer_data.movie_data SET 
    revenue = REPLACE(revenue, '$', ''),
    budget = REPLACE(budget, '$', ''),
    budget = REPLACE (budget, ',', ''),
    revenue = REPLACE(revenue, ',', '');

然后 > alter table > TEXT to DECIMAL (40,2) 就是这样。 我想没有一些工作要做是不可能的。 我希望它能帮助别人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM