Sql server 将演员和案例结合在一起
我有一个可怕的问题要写Sql server 将演员和案例结合在一起,sql-server,casting,concatenation,case,Sql Server,Casting,Concatenation,Case,我有一个可怕的问题要写 SELECT TOP 25 uinv = (CASE WHEN exported = 1 THEN 'Sent To Accounts' WHEN queued = 1 THEN 'Finalised' WHEN reviewed = 1 THEN 'Pro Forma' WHEN started = 1 THEN 'New' END) , ( CAST(acc_id AS VARCHAR) + ' / ' +
SELECT TOP 25
uinv = (CASE
WHEN exported = 1 THEN 'Sent To Accounts'
WHEN queued = 1 THEN 'Finalised'
WHEN reviewed = 1 THEN 'Pro Forma'
WHEN started = 1 THEN 'New'
END)
,
(
CAST(acc_id AS VARCHAR) + ' / ' +
CAST(transactiontype AS VARCHAR) + ' / ' +
CAST(reference AS VARCHAR) + ' / '
)
AS label
FROM tablename;
这很好,但我需要在AS标签中获取uinv字段。我尝试过各种排列,但我就是做不好
需要帮忙吗
谢谢,克里斯你是说像这样吗
SELECT
tbl.uinv,
(
tbl.uinv+
CAST(acc_id AS VARCHAR) + ' / ' +
CAST(transactiontype AS VARCHAR) + ' / ' +
CAST(reference AS VARCHAR) + ' / '
)
AS label
FROM
(
SELECT TOP 25
uinv = (CASE
WHEN exported = 1 THEN 'Sent To Accounts'
WHEN queued = 1 THEN 'Finalised'
WHEN reviewed = 1 THEN 'Pro Forma'
WHEN started = 1 THEN 'New'
END),
tablename.acc_id,
tablename.transactiontype,
tablename.reference
FROM tablename
) AS tbl
如果您只想将uinv放在内部而不是作为一个单独的列,那么只需将案例移到内部即可
SELECT TOP 25
(
CAST(acc_id AS VARCHAR) + ' / ' +
CAST(transactiontype AS VARCHAR) + ' / ' +
CAST(reference AS VARCHAR) + ' / ' +
CASE
WHEN exported = 1 THEN 'Sent To Accounts'
WHEN queued = 1 THEN 'Finalised'
WHEN reviewed = 1 THEN 'Pro Forma'
WHEN started = 1 THEN 'New'
END
)
AS label
FROM tablename;
如果你想把它放在标签内,除了作为一个单独的列,你可以使用CTE
WITH cte AS (
SELECT *,CASE
WHEN exported = 1 THEN 'Sent To Accounts'
WHEN queued = 1 THEN 'Finalised'
WHEN reviewed = 1 THEN 'Pro Forma'
WHEN started = 1 THEN 'New'
END uinv
FROM tablename
)
SELECT uinv,
CAST(acc_id AS VARCHAR) + ' / ' +
CAST(transactiontype AS VARCHAR) + ' / ' +
CAST(reference AS VARCHAR) + ' / ' +
uinv
AS label
FROM cte;
你能给我一个你想要作为输出的样品吗?“我需要在AS标签中获取uinv字段”的含义对我来说不是很清楚。很明显,标签字段是一个连续的值,所以我希望它在这里。当前为:acc_id/transactiontype/reference,我想要/需要:acc_id/transactiontype/reference/univThanks@Chris你也想要大学专栏,非常感谢。我正要告诉您如何将额外字段添加到SELECT中,但您已经这样做了。很好,谢谢。是的,我看到了。我做得有点快。很高兴能帮上忙:)谢谢Joachim,你的第一个例子就是我想做的,但是我在括号的位置上遇到了各种各样的问题。我认为这是在转移注意力。谢谢你的帮助