[英]SQL server 2008 - subquery returned more than one value
SQL Server 2008-从查询结果集中读取数据时发生错误。 子查询返回的值超过1。 当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。
This came up as soon I added the case statement with CHDOCS. Everything else worked
fine until that point. Can anyone help me out with this one please?
SELECT
CHDOCS.MAILING_ID
,CASE WHEN (SELECT CHDOCS.MAILING_DOCUMENT
FROM CHDOCS
WHERE
CHDOCS.MAILING_DOCUMENT LIKE N'%EX%')IS NOT NULL
THEN (SELECT CHDOCS.MAILING_DOCUMENT
FROM CHDOCS
WHERE
CHDOCS.MAILING_DOCUMENT LIKE N'%EX%') ELSE '' END AS 'DOC'
FROM CHDOCS
您不能对结果集使用CASE
语句-必须对单个值运行它。
我相信这是您要完成的工作,它是对CHDOCS
表中每个MAILING_DOCUMENT
字段的评估:
SELECT CHDOCS.MAILING_ID
-- Check if the Mailing Document field matches the pattern *EX*
,CASE WHEN CHDOCS.MAILING_DOCUMENT LIKE N'%EX%'
THEN CHDOCS.MAILING_DOCUMENT -- It does, return the field value.
ELSE '' -- It doesn't, return empty.
END AS DOC
FROM CHDOCS
您的这个查询
SELECT
CHDOCS.MAILING_ID, ISNULL(CHDOCS.MAILING_DOCUMENT,'')
FROM CHDOCS
WHERE CHDOCS.MAILING_DOCUMENT LIKE N'%EX%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.