0
CASE
WHEN @vessel_certificate_id IS NULL
THEN SELECT
id, name as file_name,
SUM(DATALENGTH(data))/1048576.0 AS file_size,
dbo.fn_format_datetime(created_on) as file_date
FROM
vessel_cert_attachment
GROUP BY
id, name, type, created_by, created_on
ELSE
SELECT
id, name as file_name,
SUM(DATALENGTH(data))/1048576.0 AS file_size ,
dbo.fn_format_datetime(created_on) as file_date
FROM
vessel_cert_attachment
WHERE
vessel_certificate_id = @vessel_certificate_id
GROUP BY
id, name, type, created_by, created_on
此基础上,如果参数是不是空的,我希望它没有PARAM执行select语句,如果有PARAM传球,我希望它执行与WHERE条件SELECT语句中的SQL。if else sql语句(选择语句与参数和没有参数)?
是否可以像那样执行它?
'CASE'在T-SQL是一种** **表达(如'一个+ B'),该**返回ONE,单个的原子值** - 你不能使用'CASE'来有条件地执行一个代码块或另一个代码块 - 为此,你需要'IF .... ELSE ....' –