sql使用case when 函数:当dci=1 时acn为sfhm 且 can为sfzh;当dci=0时 an为为sfhm 且act—_num为sfzh
时间: 2024-10-23 21:06:38 浏览: 14
在SQL中,你可以使用`CASE WHEN`语句来实现这样的条件判断逻辑。这是一种条件表达式,它会根据给定的条件返回不同的值。对于你提供的场景,可以编写如下的SQL查询:
```sql
SELECT
CASE
WHEN dci = 1 THEN
COALESCE(acn, 'sfhm') AS your_column_name1,
COALESCE(can, 'sfzh') AS your_column_name2
ELSE
COALESCE(an, 'sfhm') AS your_column_name1,
COALESCE(act_num, 'sfzh') AS your_column_name2
END
FROM
your_table;
```
在这个例子中:
- `WHEN dci = 1 THEN` 部分处理dci等于1的情况,如果`acn`或`can`存在就直接使用,不存在则替换为'sfhm'和'sfzh'。
- `ELSE` 部分处理dci不等于1(即0)的情况,对`an`和`act_num`做同样的替换操作。
注意替换`your_table`为你实际的表名,并将`your_column_name1`和`your_column_name2`替换成你想要新列名称。
相关问题
dci字段 包括的值有 0、1、cr。 使用case when 函数 当dci='1' 时acn为sfhm 且 can为sfzh;当dci=0时 acct_name为为sfhm 且acct_num为sfzh
DCI字段通常代表数据校验和控制信息,在某些系统中用于表示数据的完整性和一致性。在这个上下文中,如果dci的值为:
1. 当dci等于1(假设这对应于某种数据校验成功的情况),它可能会触发一些特定规则,比如在ACN(账户名称)和CAN(账户编号)上应用SFHM(可能是“标准格式”、“合规状态”或其他含义的具体标识)。在这种情况下,你可以使用CASE WHEN函数来设置条件,例如:
```sql
CASE
WHEN dci = '1' THEN
ACN = 'sfhm' AND CAN = 'sfzh'
END
```
这表示如果dci为1,ACN字段应该被设置为'sfhm',同时CAN字段应为'sfzh'。
2. 对于dci等于0的情况,可能意味着另一种数据格式或处理规则。在这种场景下,SQL查询可以写作:
```sql
CASE
WHEN dci = '0' THEN
acct_name = 'sfhm' AND acct_num = 'sfzh'
END
```
这意味着当dci为0时,account_name字段会变成'sfhm',而account_num字段会变为'sfzh'。
请注意,实际的SQL语法可能需要根据所使用的数据库管理系统(如Oracle, SQL Server, MySQL等)做适当调整。
阅读全文