返回作为MS SQL中Concat字符串一部分的行数

返回作为MS SQL中Concat字符串一部分的行数,sql,sql-server,Sql,Sql Server,我有以下疑问: SELECT CONCAT(transactionID, '|', startStatus, '|', endStatus, '|', transactionType, '|', date) FROM db_transactions WHERE orgId = 2 ORDER BY date DESC OFFSET 0 ROWS FETCH NEXT 13 ROWS ONLY 我无法检索多个列,因此我使用CONCAT在一个结果中获取多个列。 但我还需要得到项目的总数 因此,基

我有以下疑问:

SELECT CONCAT(transactionID, '|', startStatus, '|', endStatus, '|', transactionType, '|', date) FROM db_transactions 
WHERE orgId = 2
ORDER BY date DESC
OFFSET 0 ROWS
FETCH NEXT 13 ROWS ONLY

我无法检索多个列,因此我使用CONCAT在一个结果中获取多个列。 但我还需要得到项目的总数

因此,基本上我想将COUNT(transactionID)作为CONCAT字符串的一部分返回,我尝试添加:

SELECT CONCAT(transactionID, '|', startStatus, '|', endStatus, '|', transactionType, '|', date, '|', COUNT(transactionID))
但这并不奏效


这可能吗

您可以添加一个窗口化的
COUNT()
转换为
VARCHAR

SELECT 
    CONCAT(
        transactionID, 
        '|', 
        startStatus, 
        '|', 
        endStatus, 
        '|', 
        transactionType, 
        '|', 
        date,
        '|',
        CONVERT(VARCHAR(10), COUNT(1) OVER(PARTITION BY transactionID)))
FROM 
    db_transactions 
WHERE 
    orgId = 2
ORDER BY 
    date DESC
OFFSET 
    0 ROWS
FETCH NEXT 
    13 ROWS ONLY

如果要为每个
TransactionID
合计这些id的总数,可以尝试使用分析函数
count()(除以)


“我无法检索超过1列”这是客户端限制吗?
COUNT(1)OVER(partitionbytransactionid)
?@EzLo是的,现在我需要解决这个问题,直到将来某个时候解决这个问题,这很奇怪,但这是一件事。
  SELECT CONCAT(transactionID, '|', 
                  startStatus, '|', 
                    endStatus, '|', 
              transactionType, '|', 
                         date, '|', 
             COUNT(1) OVER (PARTITION BY transactionID))
     ...