簡體   English   中英

SQLite:根據案例語句選擇列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM