Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用自定义字符串分隔SQL Server输出_Sql_Sql Server_Delimited Text - Fatal编程技术网

使用自定义字符串分隔SQL Server输出

使用自定义字符串分隔SQL Server输出,sql,sql-server,delimited-text,Sql,Sql Server,Delimited Text,我正在MS SQL Server中运行一个作业,该作业输出一个文本文件,列之间有空格。我想做的是在每列之间指定一个特定的字符序列作为分隔符 例如,我希望输出如下所示: Apple%%%red%%%fruit banana%%%yellow%%%fruit onion%%%White%%%veggie --------------- row1%%%somedata row2%%%somedata 在本例中,%%是分隔符 如何执行此操作?假设您正在使用作业步骤的输出文件,并且输出文件当前

我正在MS SQL Server中运行一个作业,该作业输出一个文本文件,列之间有空格。我想做的是在每列之间指定一个特定的字符序列作为分隔符

例如,我希望输出如下所示:

Apple%%%red%%%fruit  
banana%%%yellow%%%fruit  
onion%%%White%%%veggie
---------------
row1%%%somedata
row2%%%somedata
在本例中,%%是分隔符


如何执行此操作?

假设您正在使用作业步骤的输出文件,并且输出文件当前的结构如下所示:

---- --------
row1 somedata
row2 somedata
您可以使用“+”将列连接起来,并根据需要插入百分号。因此,作业步骤定义将包含:

select column1 + '%%%' + column2 from table1;
输出结果如下所示:

Apple%%%red%%%fruit  
banana%%%yellow%%%fruit  
onion%%%White%%%veggie
---------------
row1%%%somedata
row2%%%somedata

这假设您可以将结果的每一行连接到单个列中。您需要强制转换/转换非字符列值才能使其工作。

我猜您正在寻找与Oracle的p/SQL命令“set colsep”命令等效的T-SQL。此命令允许您更改输出的delimter。例如,要使其成为分号,您可以调用:

设置colsep“

但是在SQL Server中。。。我知道怎么做

使用“bcp”实用程序,您可以指定分隔符并写入文件。他有以下指示:


查看-t选项以更改分隔符。

这是
MySQL
还是
SQL Server
?它们不是同一件事……标题是说
MySQL
假设这是一个错误?您目前是如何生成此文件的?从表1中选择column1+'%%'+column2;不起作用,但从表1中选择第1列、%%、第2列;做