【问题标题】:How to get mutlple colum values in a single row?如何在一行中获取多个列值?
【发布时间】:2020-10-12 08:15:30
【问题描述】:
ALTER PROCEDURE [dbo].[SpInvoiceSel]
AS
BEGIN
      Declare @json varchar(MAX) 

    SET @json = (
            select (
                select InvoiceId as 'invoiceId',
                       i.CustomerId as 'customerId',
                       o.OrganizationName as 'organizationName',
                      (p.FirstName +  p.LastName) as 'fullName',
                       sum(i.TotalRate) as 'totalrate'
                       from Invoice as i
                       inner join  Customer as c
                       on c.CustomerId = i.CustomerId
                       inner join Organization as o
                       on o.OrganizationId = c.OrganizationId
                       inner join Employee as e
                       on e.EmployeeId = i.EmployeeId
                       inner join Person as p
                       on p.PersonId = e.PersonId
                    
                     group by  InvoiceId,i.CustomerId,i.EmployeeId,p.FirstName,p.LastName,i.TotalRate,o.OrganizationName
            FOR JSON PATH, include_null_values
            ) as 'data' for json path, without_array_wrapper
    )
    select @Json as 'Json'
                  
END

“Nathan field 和 Robert Plant 在不同的列中”现在我需要将它们放在一行中

【问题讨论】:

  • use text, not images/links, for text--including tables & ERDs。仅将图像用于无法表达为文本或增强文本的内容。在图像中包含图例/键和说明。这是一个常见问题解答。请在考虑发布之前阅读您的教科书和/或手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。反映你的研究。 How to Ask
  • 你为什么要在i.TotalRate上聚合分组?
  • “Nathan field 和 Robert Plant 在不同的列” 不,它们都在同一列;列Employee。预期结果将帮助我们在这里为您提供帮助。
  • 请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出尽可能少的代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)的 SQL,并以表格格式作为代码输入。 How to Ask 暂停总体目标的工作,将代码砍到第一个表达式,没有给出你期望的内容,说出你的期望和原因。

标签: sql json tsql join concat


【解决方案1】:

使用 CONCAT() 函数

CONCAT (InvoiceId , i.CustomerId , o.OrganizationName, p.FirstName, p.LastName ) as Mycolumn

你明白了

t-sql:https://docs.microsoft.com/en-us/sql/t-sql/functions/concat-transact-sql?view=sql-server-ver15

【讨论】:

  • 问题是关于tsql的。
  • 确实如此,@Augustus,关键是链接到基于 T-SQL 的问题的 MySQL 文档是不相关的。同名函数在不同 RDBMS 上的行为(非常)不同。
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2021-01-07
  • 1970-01-01
  • 2021-10-25
  • 2021-01-16
  • 1970-01-01
相关资源
最近更新 更多