我正在寻找一个像Oracle的DECODE那样具有tab单个列的表的字符串函数col
col
----
a
b
c
d
Run Code Online (Sandbox Code Playgroud)
用一个简单的查询:
select decode(col,'a',1,'b',2',9) dec from tab
Run Code Online (Sandbox Code Playgroud)
我希望这样的结果:
dec
---
1
2
9
9
Run Code Online (Sandbox Code Playgroud)
我在《语言手册》中找不到任何内置函数。有没有可以模拟DECODE的UDF?
我不想使用case子句。
问候
帕维尔
您可以编写一个嵌套if语句。
查询:
select col
, if(col='a', 1, if(col='b', 2, 9)) dec
from table
Run Code Online (Sandbox Code Playgroud)
输出:
---------
col | dec
---------
a 1
b 2
c 9
d 9
Run Code Online (Sandbox Code Playgroud)
如果使用扁平的 CASE WHEN THEN 表达式避免嵌套,可能更容易阅读和检查:
SELECT
CASE
WHEN col = 'a' THEN 1
WHEN col = 'b' THEN 2
ELSE 9
END dec
FROM tab
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14358 次 |
| 最近记录: |