如何修改查询以删除所有列中的双引号?



我运行了一个查询 - 其结果被放入另一个程序运行的.csv中:另一个程序被双引号阻塞。 因此,我通常只是在Excel中快速查找和替换,将所有双引号替换为任何内容。

不过,我有一个新的边缘场景 - 这次的输出文件> 2,000,000 行,这意味着我无法在 Excel 中打开它来执行查找和替换。

有没有一种非常简单的方法可以从查询结果中删除双引号? 我的下意识反应是使用 CASE 或变量,但似乎都不是特别干净。

我没有发布查询,因为它> 100 行,我认为这里可能有一个一般概念。

思潮?

这是一个简单的例子

CREATE TABLE T
(
Name    VARCHAR(45),
Address VARCHAR(45)
);
INSERT INTO T VALUES
('"FirstName"', '"FirstAddress"');
SELECT *
FROM T;
SELECT REPLACE(Name, '"', '') Name,
REPLACE(Address, '"', '') Address
FROM T;

或者最好使用LEFT()RIGHT()函数,因为它可以"First"Address",例如,确保只删除第一个和最后一个

SELECT LEFT(RIGHT(Name, LEN(Name) - 1), LEN(Name) - 2) Name,
LEFT(RIGHT(Address, LEN(Address) - 1), LEN(Address) - 2) Address
FROM T;

返回

+-------------+----------------+
|    Name     |    Address     |
+-------------+----------------+
| "FirstName" | "FirstAddress" |
+-------------+----------------+

+-----------+--------------+
|   Name    |   Address    |
+-----------+--------------+
| FirstName | FirstAddress |
+-----------+--------------+

请记住REPLACE()函数将删除找到的任何"

获得.csv文件后,通过过滤器运行它。

powershell -NoProfile -Command ^
"Get-Content -Path '.quotedtext.csv' |" ^
"ForEach-Object{ $_.Replace('""','') }" >quotednot.csv

D'oh - REPLACE 函数将完美地用于此。 因此,只需为每个选定的字段REPLACE(FieldName,'"','')删除所有双引号。

相关内容

  • 没有找到相关文章

最新更新