![](/img/trans.png)
[英]SQLITE: How to select a column value based on different columns in another table
[英]Convert column to a different value based on another columns value
我有一張桌子
ID | Name | ProdID | Model | StudID
-----------------------------------
1 | A | 3 | hey | 6
2 | B | 4 | he | 7
2 | C | 5 | hi | 8
當ProdID
為4和5時,我只需將Model
和StudID
值設為N/A
ID | Name | ProdID | Model | StudID
-----------------------------------
1 | A | 3 | hey | 6
2 | B | 4 | N/A | N/A
2 | C | 5 | N/A | N/A
這是到目前為止我所做的一小部分樣本
SELECT
ID,
Name,
CASE
WHEN CONVERT(VARCHAR, ProdID) = 4 THEN CONVERT(VARCHAR, Model) = 'N/A'
..
首先,您需要非常小心類型。
convert()
或cast()
始終包含varchar()
的長度。 所以:
SELECT ID, Name, ProdId,
(CASE WHEN ProdId IN (4, 5) THEN Model ELSE 'N/A' END) as Model,
(CASE WHEN ProdId IN (4, 5) THEN CONVERT(VARCHAR(255), StudId) ELSE 'N/A' END) as StudId
...
請注意,您需要轉換StudId
, StudId
是該值是整數。
select ID , Name , ProdID ,
CASE WHEN ProdID IN (4,5) THEN 'N/A' ELSE Model END Model ,
CASE WHEN ProdID IN (4,5) THEN 'N/A' ELSE StudID END StudID from @Table1
嘗試這個
SELECT
ID,
Name,
ProdID,
CASE
WHEN ProdID IN( 4,5) THEN 'N/A'
ELSE CONVERT(VARCHAR, Model)
END AS 'Model',
CASE
WHEN ProdID IN( 4,5) THEN 'N/A'
ELSE CONVERT(VARCHAR, StudID)
END AS 'StudID'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.