![](/img/trans.png)
[英]How to make an sql query that combines values across multiple columns into a single one in MySQL?
[英]How to make this sql query work for multiple columns
我有一個如下結構的查詢,它檢查給定列中的任何條目是否不是 null,如果找到匹配項(非空值),則立即返回 Y,如果所有值都是 null,則返回 N。它適用於名為 first_name 的列,但我需要使其也適用於其他列,即 last_name、middle_name,最好全部在一個查詢中以節省執行時間。 必須為每個指定的列返回 Y 或 N。
SELECT CASE
WHEN EXISTS(SELECT *
FROM (patient AS p JOIN patient_score AS s ON p.patient_id=s.patient_id)
WHERE first_name IS NOT NULL)
THEN 'Y'
ELSE 'N'
END AS your_result
我有另一個查詢,它是一種替代方法並且做同樣的工作(1/0 而不是 Y/N)。 但我也不知道如何使它與多列一起使用。 可以通過提供多個列名來工作的過程也可以工作。
SELECT COUNT(*) AS fn FROM
(SELECT 1
FROM (patient AS p JOIN patient_score AS s ON p.patient_id=s.patient_id)
WHERE first_name IS NOT NULL
LIMIT 1) AS T;
我認為這是您想要的查詢,您必須為每個添加一個 SELECT 元素(CASE WHEN SUM(CASE WHEN column_name IS NULL THEN 0 ELSE 1 END)> 0 THEN 'Y' ELSE AS_N' END)你想檢查。
SELECT
CASE WHEN SUM(CASE WHEN first_name IS NULL THEN 0 ELSE 1 END) > 0 THEN 'Y' ELSE 'N' END AS first_name
FROM patient AS p
INNER JOIN patient_score AS s ON p.patient_id = s.patient_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.