具有多个值的CASE语句

时间:2018-10-19 17:12:28

标签: sql db2 case toad

嗨,我想这样写一个CASE STATEMENT:

CASE
WHEN A in ('AA','AV') and B = 'HH' then 'R'

我收到此错误:

  

ERROR [42803] [IBM] [DB2 / LINUXX8664]在GROUP BY子句中未指定或在SELECT子句中指定了以SELECT子句,HAVING子句或ORDER BY子句中指定的以“ B”开头的表达式,HAVING子句或具有列函数且未指定GROUP BY子句的ORDER BY子句。

但是我的选择子句中没有“ B”。

2 个答案:

答案 0 :(得分:0)

CASE语句是SELECT,ORDER BY或HAVING子句的一部分。

对于此错误,与此代码结合,您还必须具有GROUP BY子句。您需要将B作为该group by子句的一部分。否则,B代表可能值的整个范围,其中一些可能满足或可能不符合= 'HH'条件;代码不明确。

答案 1 :(得分:0)

您需要#-----Workernodes----- resource "aws_instance" "nodes-opt-us1-k8s" { instance_type = "${var.k8s-node_instance_type}" ami = "${var.k8s-node_ami}" count = "${var.NodeCount}" tags { Name = "nodes-opt-us1-k8s" } key_name = "${aws_key_pair.k8s-node_auth.id}" vpc_security_group_ids = ["${aws_security_group.opt-us1-k8s_sg.id}"] subnet_id = "${aws_subnet.opt-us1-k8s.id}" #-----Link Terraform worker nodes to Ansible playbooks----- provisioner "local-exec" { command = <<EOD cat <<EOF > aws_worker_nodes_IP [workers] ${aws_instance.nodes-opt-us1-k8s.*.public_ip[count.index]} EOF EOD } } 之后再输入值

list1=['West North Central', '1', '0', '100', '90']
list2=[]
list3=[]
for i in list1:
    if i.isdigit():
        list3.append(i)
    else:
        list2.append(i)
answer = []
answer.append(' '.join(list2))
answer.extend(list3)

CASE的常规语法

END