我有以下表「Custumer」:的毗連兩個SQL的結果
Customer_ID Customer_Name
01 John
02 Mary
03 Marco
我想從一個選擇返回以下結果:
Query_Result
01
02
03
John
Mary
Marco
是否有可能?將兩個列合併爲一個?
我有以下表「Custumer」:的毗連兩個SQL的結果
Customer_ID Customer_Name
01 John
02 Mary
03 Marco
我想從一個選擇返回以下結果:
Query_Result
01
02
03
John
Mary
Marco
是否有可能?將兩個列合併爲一個?
一種方法(假設CUSTOMER_ID是字符類型)
SELECT
Customer_ID
FROM Customer
UNION ALL
SELECT
Customer_Name
FROM Customer
嘗試使用UNION ALL
,以下內容應該適合您。
SELECT CONVERT(varchar(30), Customer_ID) FROM Customer
UNION ALL
SELECT Customer_Name FROM Customer
基本上,你有兩個選擇來實現這一目標:
從每一列中選擇數據,並使用UNION ALL
合併結果。請注意確保每個選擇的結果產生相同的數據類型。
逆透視表作爲在下面的例子:
SELECT AnyColumn
FROM
(SELECT Customer_ID, Customer_Name
FROM Customer) p
UNPIVOT
(
AnyColumn FOR Customer IN
(Customer_ID, Customer_Name)
) AS unpvt;
就個人而言,我會質疑做這樣的操作的必要性。如果你發現自己被迫這樣做,我建議你重新考慮你的數據模型。
儘管在使用'CONVERT'函數時varchar的長度是30個字符,但作爲一個好習慣,您應該始終明確定義長度。 – Kaf
'Customer_ID'已經看起來像一個'VARCHAR'類型(它有0的前導)。另外,正如@Kaf指出的那樣,指定轉換時的長度是一種很好的做法。 –
@Kaf和@Jon謝謝,修正了'varchar'的大小,我使用了'CONVERT',因爲在OP的問題中沒有指出'Customer_ID'字段是NUMERIC還是varchar數據類型。 – user2989408