我运行了一个查询-该查询的结果放入.csv中,以便另一个程序运行:该其他程序在双引号上阻塞。因此,我通常只是在Excel中进行快速查找和替换,而不用所有双引号将其替换。
虽然我有一个新的边缘方案-这次的输出文件为> 2,000,000行,这意味着我无法在Excel中打开它进行查找和替换。
是否有一种很简单的方法可以从查询结果中删除双引号?我的下意识的反应是使用CASE或Variables,但似乎都不是特别干净。
我没有发布查询,因为它有100多个行,并且我认为这里可能有一个通用概念。
有什么想法吗?
答案 0 :(得分:2)
这是一个简单的例子
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()
函数将删除找到的所有"
。
答案 1 :(得分:1)
拥有.csv文件后,请通过过滤器运行该文件。
powershell -NoProfile -Command ^
"Get-Content -Path '.\quotedtext.csv' |" ^
"ForEach-Object{ $_.Replace('""','') }" >quotednot.csv
答案 2 :(得分:0)
D'oh-REPLACE函数可以完美地实现此目的。因此,仅针对每个选定字段REPLACE(FieldName,'"','')
删除所有双引号。