![](/img/trans.png)
[英]Condition on case statement based on previous colum value in postgresql
[英]SQLite: Select colum based on case statement
作為一個SQL新手,我有一個關於基於大小寫值選擇列的問題。 下面的SQL似乎應該可以正常工作(至少據我所知非常有限),但事實並非如此。 有什么想法嗎?
SELECT
tbl1.*,
CASE
WHEN tb11.col1 = "1" THEN tbl2.col1
WHEN tbl1.col1 = "2" THEN tbl2.col2
end as tbl2_col_select
FROM tbl1
LEFT JOIN tbl2
ON tbl1.id = tbl2.id AND
tbl1.year = tbl2.year
謝謝!
在我懷疑您在不同情況下返回不同的數據類型后,閱讀了注釋,因此您需要將其強制轉換為數據類型,因此在每種情況下返回的數據類型都是相同的,
處理此問題的一種方法是將數據類型轉換為與每種情況下的數據類型匹配的內容,例如
SELECT tbl1.*
, CASE
WHEN tb11.col1 = '1'
THEN tbl2.col1
WHEN tbl1.col1 = '2'
THEN CAST(tbl2.col2 AS VARCHAR(100)) --<-- Data type of tbl2.col1
END AS tbl2_col_select
FROM tbl1
LEFT JOIN tbl2 ON tbl1.id = tbl2.id AND tbl1.year = tbl2.year
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.