【问题标题】:Combine some of all columns合并所有列中的一些
【发布时间】:2014-02-15 04:23:44
【问题描述】:

我正在尝试从包含几列的表(称为地址)中返回信息。物理地址分为line1、line2、city、state等。我想显示表格中的所有列,但想将line1和line2列合并为一个名为street的列。

有没有办法在不列出表格中的每一列的情况下做到这一点?

【问题讨论】:

标签: mysql concatenation concat


【解决方案1】:

这样试试

SELECT Line1 + ',' + Line2, city, state From Address

(或)

SELECT concat(line1, ' , ', line2) , city, state From Address

【讨论】:

  • 您的第二个建议与我最初尝试的很接近。我在第 1 行之前还有另外两列。我希望不必列出每一列,但仍使用 CONCAT 将地址的两列组合起来。这是我输入的代码:SELECT address_id, customer_id, CONCAT(line1, ' ', line2) AS Street, city, state, zip_code, disabled FROM addresses;
  • 是的,它工作正常。我只是想知道是否有一种方法可以提高效率,因为我在表格上显示每一列。我也试过这个: SELECT *, CONCAT(line1, ' ', line2) AS street FROM addresses;这会列出整个表格,并将 street 列添加到末尾。
  • 您需要调用单独的列。你的想法在这里行不通。如果有帮助,标记为有用
【解决方案2】:
SELECT line1 + line2 AS street, city, state FROM addresses

【讨论】:

  • 稍作修改,我就能更接近一点。但是,我在 line1 和 line2 之前还有另外两列。这是我之前输入的代码: SELECT address_id, customer_id, CONCAT(line1, ' ', line2) AS Street, city, state, zip_code, disabled FROM addresses;有没有办法不必列出我需要的所有列,但也对 line1 和 line2 使用 CONCAT?
  • 我不这么认为,您可以使用 CONCAT,但无论如何您都必须列出要显示的列。好吧,您可以使用SELECT CONCAT(line1, '', line2), * FROM ...,但您也将获得 line1、line2 并且使用 * 效率较低。
  • 我实际上试过这个: SELECT *, CONCAT(line1, ' ', line2) AS street FROM addresses;你建议的方式给了我一个错误。但是,我从该回复中输入代码的方式列出了所有列,并在末尾添加了另一条命名街道。
【解决方案3】:

试试这个..

SELECT Line1 + ',' + Line2 as Street, city, state From [TableName]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    相关资源
    最近更新 更多