我有兩個表,想在一個視圖中連接它們。
LIN_MD_Functions
bigint text
function_id function_name
1 Consulting
2 教育
LIN_Main_Followers
char var text text
metric_type_id metric_type metric_value metric_name
1 function 56 followers
2 function 62 likes
我們的國家 79 意見
...和許多其他型別和值。
我試影像( metric_type_id = function_id AND metric_type = 'function')那樣連接它們。問題是,metric_type_id列包含數字和char值,我不能直接把它變成int。
但是它拋出了一個錯誤,因為不同的列型別
。代碼
SELECT lin.metric_name,
lin.metric_type,
lin.metric_value,
func.function_name,
CASE[/span
WHEN lin.metric_type_id::text ~ '^d $'::text THEN lin. metric_type_id::integer。
ELSE lin.metric_type_id
END AS "id_m"
FROM "LIN_Main_Followers" lin
LEFT JOIN "LIN_MD_Functions" func ON (lin.metric_type_id = func.function_id AND )
lin.metric_type = 'function'
我知道在JOIN中,我必須以某種方式再次轉換id列,但無法得到如何轉換。 我不能在函式表中改變資料型別。
我的理想結果是:
查看
metric_name metric_type metric_value function_name
followers function 56 Consulting
喜歡 功能 62 教育
uj5u.com熱心網友回復:
鑒于metric_type_id包含混合的文本/數字,因此你應該將其視為文本,并將function_id列投給文本:
SELECT
lin.metric_name,
lin.metric_type,
lin.metric_value,
func.function_name。
CASE WHEN lin.metric_type_id::text ~ '^d $': :text
THEN lin.metric_type_id::integer: :text
ELSE lin.metric_type_id END AS "id_m"
FROM LIN_Main_Followers lin
LEFT JOIN LIN_MD_Functions func
ON lin.metric_type_id = func.function_id::text AND
lin.metric_type = 'function'/span>。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324739.html
標籤:
