小编use*_*892的帖子

多个THEN到一个CASE语句?

我想添加一个额外的列.这个额外的列将根据案例陈述获得一个值.我的目标是,例如,虽然语法非常错误,但要实现这一点:当'A'然后'Apple'和'ExtraColumn'= 1.我试图使用下面的代码创建一个equivialnt,但我得到一个错误,我的SQL语法不正确.

select Patient,
case ColumnName 
when 'A' then 'Apple'  
when 'B' then 'Banana'
end ColumnName, 
case ExtraColumn 
when 'A' then '1'  
when 'B' then '2'
end ExtraColumn, 

ColumnResult
from TABLE

unpivot
(
ColumnResult

for ColumnName in (COL1,COL2,COL3)

for ExtraColumn in (COL1,COL2,COL3)

)u
Run Code Online (Sandbox Code Playgroud)

sql oracle

5
推荐指数
1
解决办法
2万
查看次数

unpivot表不同的数据类型与案例

使用下面的sql我得到错误我的数据类型不相等.C1是varchar,C2是数字.我发现数据透视表必须具有相同的数据类型,但是如何在使用下面的case语句时将数字转换为varachar?

SELECT userID,

CASE columnname
WHEN 'c1' THEN
'Column1'
WHEN 'c2' THEN
'Column2'

END AS
columnname,

CASE columnname
WHEN 'c1' THEN
'1'
WHEN 'c2' THEN
'2'
END AS
"Extra info",
columnresult
FROM mytable unpivot( columnresult FOR columnname IN(c1,c2)) u
Run Code Online (Sandbox Code Playgroud)

sql plsql unpivot

3
推荐指数
1
解决办法
5942
查看次数

标签 统计

sql ×2

oracle ×1

plsql ×1

unpivot ×1