返回作为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))
...