【问题标题】:How to get the Column Header for the SQL select query with Pipe delimited如何使用管道分隔的 SQL 选择查询获取列标题
【发布时间】:2021-04-25 20:59:22
【问题描述】:

我写了一个 SQL Server 选择查询,格式为“|”分隔但我没有得到列名称标题只有值正在打印。我是 SQL Server 的新手,尝试了不同的方式作为列别名,但没有成功。 请帮忙。

     SELECT ID  + '|' 
          +  LTL + '|' 
          + Safely + '|' 
          + Dock + '|' 
          + Required + '|'
          + Hours + '|'
          + Dock + '|' 
          + Jack + '|' 
          + Dolly + '|'
          + convert(varchar(100), Pallets) + '|'
          + convert(varchar(100), wgPallets) + '|'
          + convert(varchar(100), NoBoxes) + '|'
          + convert(varchar(100), WgBoxes) + '|'
          + convert(varchar(100), Cabinets) + '|'
          + convert(varchar(100), Racks) + '|'
          + Batteries + '|' 
          + Sited + '|' 
          + convert(varchar(23),Date_Enter,121) + '|' 
          FROM sales

如何使用上面的查询显示如下的coulmn Header以及值。
ID|LTL|Safely|Dock|Required|Hours|Dock|Jack|Carrier_Dolly|Pallets|WgPallets|NoBoxes|WgBoxes |机柜|机架|电池|选址|Date_Enter

提前致谢

【问题讨论】:

  • ... + convert(varchar(23),Date_Enter,121) + '|' AS "The wanted column name" FROM sales
  • 如果你想要一个管道分隔的数据集,这样做是错误的想法。使用正确的 ETL 流程

标签: sql sql-server sql-server-2008 sql-server-2012


【解决方案1】:

如果你想让你的标题在你的 SQL 中显示为结果行,你必须告诉 SQL 引擎。

这可以通过 UNION 来完成:

SELECT
  'ID|LTL|Safely|Dock|Required|Hours|Dock|Jack|Carrier_Dolly|Pallets|WgPallets|NoBoxes|WgBoxes|Cabinets|Racks|Batteries|Sited|Date_Enter' AS csv_output
UNION
SELECT 
  ID  + '|' 
    +  LTL + '|' 
    + Safely + '|' 
    + Dock + '|' 
    + Required + '|'
    + Hours + '|'
    + Dock + '|' 
    + Jack + '|' 
    + Dolly + '|'
    + convert(varchar(100), Pallets) + '|'
    + convert(varchar(100), wgPallets) + '|'
    + convert(varchar(100), NoBoxes) + '|'
    + convert(varchar(100), WgBoxes) + '|'
    + convert(varchar(100), Cabinets) + '|'
    + convert(varchar(100), Racks) + '|'
    + Batteries + '|' 
    + Sited + '|' 
    + convert(varchar(23),Date_Enter,121)
FROM
  sales
;

最后:

这不是很优雅。在导出选项(取决于您使用的工具)中,通常有一个选项可以将列的标题导出为单独的行并设置分隔符(在您的情况下为管道符号)。

我个人推荐这种方法,因为我可以对结果使用相同的视图,并且能够将导出和数据选择的逻辑彼此分开。

【讨论】:

  • 感谢您的解决方案和建议
猜你喜欢
  • 1970-01-01
  • 2017-03-26
  • 2014-08-10
  • 1970-01-01
  • 2023-01-19
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
  • 2019-06-22
相关资源
最近更新 更多