Geo*_*rds 0 sql t-sql sql-server
我有以下SQL查询:
SELECT jobs.ID, jobs.title,
SUM(CASE WHEN jobresponses.result = 'true' THEN 1 ELSE 0 END) as True,
SUM(CASE WHEN jobresponses.result = 'false' THEN 1 ELSE 0 END) as False,
SUM(CASE WHEN jobresponses.result != 'true' AND jobresponses.result != 'false' THEN 1 ELSE 0 END) as Incomplete
FROM jobresponses
JOIN jobs on jobresponses.jobId = jobs.ID
WHERE jobs.ID = 1
GROUP BY jobs.ID, jobs.title
Run Code Online (Sandbox Code Playgroud)
第三种情况是表达与实践计值result的NULL,但为了安全起见(之间'',undefined和NULL)我想主要有包罗万象的"其他"类型的字段.但是,问题是不计算NULL值.看到这个 SQL小提琴.
用途IS NULL:
SELECT jobs.ID, jobs.title,
SUM(CASE WHEN jobresponses.result = 'true' THEN 1 ELSE 0 END) as True,
SUM(CASE WHEN jobresponses.result = 'false' THEN 1 ELSE 0 END) as False,
SUM(CASE WHEN jobresponses.result IS NULL -- detect NULL
OR jobresponses.result NOT IN ('true', 'false') -- other values
THEN 1 ELSE 0 END) as Incomplete
FROM jobresponses
JOIN jobs on jobresponses.jobId = jobs.ID
WHERE jobs.ID = 1
GROUP BY jobs.ID, jobs.title;
Run Code Online (Sandbox Code Playgroud)