我正在尝试使用临时表中的电话号码填充表格。我写了没有问题的查询。但我在这里的问题是要知道该公司是否已经有一个主号码
所以我从我的临时表中选择了2个字段,名为“cvsnumbers”1)company_code(id)和电话号码。
我需要添加一个case语句来更改main_number字段的值。所以,如果号码已经有一个主号码为1的号码,那么我需要为新的电话号码插入0,但如果没有主号码,那么我需要为新的电话号码插入1,使其成为该帐户的主要电话号码。
这是我的查询
SELECT ac.account_id,
REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') AS Phone,
IFNULL(ta.ext, '') AS extention,
IFNULL(ta.main_number, 0) AS MainNumber,
ta.type AS contact_type,
'2' AS created_by
FROM cvsnumbers AS ta
INNER JOIN accounts AS ac ON ac.account_id = ta.company_code
WHERE LENGTH(REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') ) = 10
AND REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') NOT IN (SELECT contact_number FROM contact_numbers)
我的问题是
`IFNULL(ta.main_number, 0) AS MainNumber,`
我想将其更改为一些案例陈述,以检查company_code是否已经有一个main_number。
我该如何更改?
由于
答案 0 :(得分:0)
我仍然不确定你的查询究竟应该是什么样子,但是这些内容会怎样?
SELECT CASE
WHEN EXISTS (SELECT *
FROM contact_numbers
WHERE main_number = 1
AND contact_number =
<insert contact number from outer expression here>)
THEN 1
ELSE 0
END AS MainNumber
FROM ...