【问题标题】:Need to combine two columns in a table [closed]需要在一个表中组合两列[关闭]
【发布时间】:2015-12-16 11:38:16
【问题描述】:

我需要使用别名在一个表中合并两列

select 
    firstname as fn,
    lastname as ln,
    userid,
    fn + '' + ln as fullname 
from 
    users 

错误是

列名“fn”无效。
列名“Ln”无效。

【问题讨论】:

  • 您遇到了什么问题?
  • 发布sql 问题时,您还应该始终包含您正在使用的实际、具体的数据库系统。并非所有内容都包含在 SQL 标准中……请添加相关标签,例如 oraclemysqlpostgresqldb2sql-server 或您可能使用的任何其他标签
  • 简单的答案是你还不能使用别名,你需要使用列名,所以它必须是:firstname + ' ' + lastname as fullname(我更喜欢 [fullname] = [firstname] + ' ' + [lastname] 但这只是我的偏好)

标签: sql sql-server-2008


【解决方案1】:

IN Sql server 2010,2012 使用 CONCAT(firstname , ' , ' , lastname )

2008 及以下版本仅用作

从用户中选择名字 + '' + 姓氏作为全名。

如果你是别名,那么

选择 fn+ ' ' + ln 作为全名 from ( 选择名字作为 fn,姓氏作为 ln,从用户中选择用户 ID)

【讨论】:

    【解决方案2】:

    这对你有帮助

    Select [col1] ,[col2], col1 + ' ' + col2 from table_name
    

    【讨论】:

    • 我需要使用别名而不是列名
    • 我认为这不适用,你能告诉我你为什么要这样做吗?
    • 实际上在 select 语句中我使用了 case 语句,因为我使用了别名。例如:当 Title = 'Hour' then 'h' else 'd' end as ratefactor 时的情况。这个比率因子正在与另一列相结合
    【解决方案3】:
    SELECT firstname as fn, 
           lastname as ln, 
           userid,
           CONCAT(firstname ,  ' , ' , lastname ) AS fullname 
    FROM users
    

    【讨论】:

    • 提示:没有任何解释的仅代码答案通常是不受欢迎的。
    猜你喜欢
    • 2020-03-25
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2020-09-30
    • 1970-01-01
    相关资源
    最近更新 更多