對于從 A 列和 B 列連接兩個 varchars,例如帶有標簽的“1923X”和“11459”,雖然我總是希望首先成為最小的字串,但我應該在 SQL Server 查詢中做什么?
輸入: 兩列
A="1923X"
B="11459"
程式:
當我們從右到左檢查兩個輸入時,在此示例中,B (1) 中的第二個字符值小于 A (9) 中的第二個字符,因此 B 更小。
結果:新列 C
“11459#1923X”
uj5u.com熱心網友回復:
原答案:
如果您需要對輸入字串進行排序,不僅是按第二個字符,STRING_AGG()也是一種選擇:
DECLARE @a varchar(5) = '1923X'
DECLARE @b varchar(5) = '11459'
SELECT STRING_AGG(v.String, '#') WITHIN GROUP (ORDER BY v.String) AS Result
FROM (VALUES (@a), (@b)) v (String)
輸出:
Result
11459#1923X
更新:
您更改了要求(現在字串存盤在兩列中),因此您需要一個不同的陳述句:
SELECT
A,
B,
C = (
SELECT STRING_AGG(v.String, '#') WITHIN GROUP (ORDER BY v.String)
FROM (VALUES (A), (B)) v (String)
)
FROM (VALUES ('1923X', '11459')) t (a, b)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/430063.html
