【问题标题】:T-Sql Combining Multiple Columns into One ColumnT-Sql 将多列合并为一列
【发布时间】:2016-03-05 21:13:51
【问题描述】:

如何将计算日期列全部合并为一列?实现这一点的 SQL 函数是什么?它们的其余字段是基于计算日期的不同值。我只需要与日期相关的不同值。

编辑

我尝试了ISNULLCOALESCE 函数,但这不是我要寻找的,因为它仍然会返回两个日期的所有值。我只需要选定帐户截至日期的数据。我不希望同一帐户上两个日期的数据。

我也尝试了 Select Distinct,但它不适合我。

【问题讨论】:

  • 如评论所述,您的预期结果是什么?请相应地编辑您的问题——不要只是说它不起作用,说出原因——显示您现在拥有的结果以及您打算拥有的结果。如果您为我们提供足够的信息,我们愿意提供帮助。

标签: sql sql-server tsql


【解决方案1】:

你可以使用 COALESCE

SELECT COALESCE(Calculation_Date, Calculation_Date)
FROM tableName

【讨论】:

  • 这非常有效。唯一的问题是表的性能非常慢。感谢您为我指明正确的方向!
  • 也许您需要在列上建立索引?
【解决方案2】:

假设其中只有 1 个有值,一种选择是使用 coalesce

select coalesce(date1, date2) 
from yourtable

【讨论】:

  • 这不起作用,因为它会返回两个日期的所有值。我只想要与日期相关的不同值。
  • @Showstopper -- 然后将distinct 添加到select 列表中?如果这不起作用,请根据您的预期结果编辑您的问题。
【解决方案3】:

由于您只有两列,另一种方法是使用ISNULL

SELECT ISNULL(FIRST_CALCULATION_DATE, SECOND_CALCULATION_DATE) AS ActualCalculationDate
FROM TheTable

您应该会收到与 COALESCE 相同的结果,但有趣的是,在确定结果类型时,它们之间存在一些 subtle differences

【讨论】:

  • 这不起作用,因为它会返回两个日期的所有值。我只想要与日期相关的不同值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 2020-06-09
  • 1970-01-01
  • 2020-05-01
相关资源
最近更新 更多