让SQL服务器进行字符串操作?

时间:2014-01-24 21:54:56

标签: sql sql-server

我想制作C#代码以从数据库表中提取数据,然后将其写入CSV文件。对于某些列,我希望将值括在双引号中。我想知道是否更好地让SQL服务器执行追加/前置或使C#代码这样做?这会使我的SQL服务器查询在所有情况下都变慢吗?

2 个答案:

答案 0 :(得分:2)

“用双引号括起来”是CSV的工件

引号是数据的一部分,因此从SQL查询中返回。

处理CSV处理 - 包括根据需要添加引号 - 在C#中。我建议使用现有的库 1 ,当数据写入为CSV时,它将自动处理所需的引用和其他注意事项。

在SQL中执行此操作的其他一些原因:

  • 防止SQL因不必要的操作而受到污染。

  • 保持查询通用;它也可以同样用于HTML或Excel输出的源数据。

  • 客户端(C#)可以根据值适当地引用字段。如果需要为CSV输出引用以前未引用的字段,这会使代码“面向未来”。

  • 对于包含引号的数据,天真地添加引号会失败。


1 如果不能使用合适的库,对于任何愚蠢的限制,可以使用各种single-file implementations浮动作为基础。 YMMV。

答案 1 :(得分:0)

SQL不擅长编程工作。它总会在某种程度上减慢速度。除非它是一个快速而肮脏的“一次性”功能,否则我会将它用于数据访问,这是擅长的。如果我不需要,我甚至不会做“订购”条款。