【问题标题】:Concatenation in SQL Server Management StudioSQL Server Management Studio 中的串联
【发布时间】:2013-10-26 00:53:39
【问题描述】:

我有一个表 (l.loandeterminationscore),它返回由 3 个 # (XXX) 组成的结果。我正在使用以下查询将该结果分成LowRangeHighRange,以便我可以将返回的结果分组为一个结果“XXX-XXX”。

SELECT 
    l.LoanNumber,
    l.LoanDeterminationScore 'FICO', 
    FLOOR (l.LoanDeterminationScore / 20) * 20 AS LowRange,
    FLOOR (l.loanDeterminationScore / 20) * 20 + 19 AS HighRange
FROM 
    loan.LoanQA l
WHERE
    l.FundedDate = '10/15/2013'

上面返回的结果是这样的:

LoanNumber FICO LowRange HighRange
-----------------------------------
592301428  604  600      619
220300002  640  640      659
414805244  675  660      679

我正在尝试使用LowRangeHighRange 将上述FICO 分组到一个20pt 范围内。所以简而言之,我希望它返回为一列,显示范围为“600-619”、“640-659”、“660-679”,而不是为LowRangeHighRange 设置两列.

我尝试使用 CONCAT 表达式,但我不断收到“语法”错误。

【问题讨论】:

  • SQL Server 的版本是什么? CONCAT 是 SQL Server 2012 中的新命令

标签: sql-server group-by concat


【解决方案1】:

试试这个:

SELECT 
    l.LoanNumber,
    l.LoanDeterminationScore 'FICO', 
    CAST(FLOOR (l.LoanDeterminationScore / 20) * 20 AS VARCHAR(10)) + '-' +
    CAST(FLOOR (l.loanDeterminationScore / 20) * 20 + 19 AS VARCHAR(10)) AS 'Range' 
FROM 
    loan.LoanQA l
WHERE
    l.FundedDate = '10/15/2013'

只需将CAST 的数值转为字符串类型,再与+ 连接,就完成了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2015-04-10
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多