我需要创建一个stored procedure
,根据用户要求创建pipe delimited text
文件。
我将使用的table
只有6列,其名称与用户必填字段不同。
此外,用户想要的列数为23.其中一些我们没有数据。我只需要在text file
。
我不确定如何在跳过其他可选列的同时显示在相应列下排列的数据。
我想我需要这样的东西:
OptionalColumn 1|DataColumn 1|OptionalColumn 2|DataColumn 2
12/12/2015 Name 1
12/12/2015 Name 2
或管道分隔文件的其他格式。
我该如何处理? 从来没有做过这样的事情。
答案 0 :(得分:0)
您可以使用简单的选择
连接您的字段SELECT '|' + YOUR_COLUMN_NAME
如果您需要更精细的选择,那么这种Stack Overflow方法可能会为您提供想法Comma Separated results in SQL 该示例创建一个逗号分隔列表,但原理是相同的。它允许连接来自多个行的数据以获得相同的id。
答案 1 :(得分:0)
如果你的输出总是一致的话,似乎你可能只能使用连接....
Select 'col1|col2|col3|coln....'
union
Select '' as extracol + '|' + realcol + '|' + '' as extracol2 + '|' + realcol2 +'...';
..将生成带标题的String
如果您需要动态发现不同故事的结构,则必须使用系统表,但这可能是一个简单的解决方案。此外,如果你有大量的行,这不是一个很好的方法。 如果您的应用要将条目流式传输到文件,最好让您的应用创建文件格式,而不是数据库存储过程