我有一个表与候选人的详细资料,其中插入base64图像作为个人资料图片。当我从表格中获得大量的候选人名单时,头像图片占用了太多的空间。我有一个默认的base64图片作为个人资料图片,为那些不上传个人资料照片。我想要的是采取null,如果个人资料图片是默认的候选人。我的查询是这样简单的,
select
Name,
DOB,
case when profilepic is default then NULL else profile pic
from candidates代码显示使用default时出现错误,但当我使用null代替DEFAULT时,代码工作正常
发布于 2021-06-30 18:26:24
大致是这样的:
select
Name
,DOB
,case when profilepic = (SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME='profilepic' and TABLE_NAME='candidates') then NULL else profilepic END
from candidates您可能需要对suqbuery进行一点解析。
发布于 2021-06-30 19:46:34
应该更高效,如下所示:
SELECT Name, DOB,
CASE WHEN profilepic = T.COLUMN_DEFAULT
THEN NULL
ELSE profilepic
END
FROM candidates
CROSS APPLY (SELECT COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'profilepic' and
TABLE_NAME = 'candidates' and
TABLE_SCHEMA = 'dbo' ) AS T假设您的表位于SQL Server数据库默认架构(dbo)中。
https://stackoverflow.com/questions/68192854
复制相似问题