Sql server 2008 sql server案例-在关键字';选择';
我正在使用SQLServer2008。 我有以下疑问。 我喜欢做的是,如果存在记录,我喜欢将实际日期指定给“N/a” 否则我希望它是手头上的CreatedBy日期Sql server 2008 sql server案例-在关键字';选择';,sql-server-2008,Sql Server 2008,我正在使用SQLServer2008。 我有以下疑问。 我喜欢做的是,如果存在记录,我喜欢将实际日期指定给“N/a” 否则我希望它是手头上的CreatedBy日期 select ActualDate = (CASE WHEN EXISTS (select NeedHand from Truck where Truck.NeedHand
select ActualDate = (CASE
WHEN EXISTS
(select NeedHand from Truck
where Truck.NeedHand = 0 and Truck.ID = '34343')
THEN
'N/A'
ELSE
SELECT CreatedByDate from Hand where ID = '34343'
END )
我得到以下信息:
关键字“select”附近的语法不正确。我认为您的EXIST应该存在。您的查询存在许多问题。以下版本应考虑所有这些问题:
select ActualDate =
CASE
WHEN EXISTS(
select NeedHand from Truck
where Truck.NeedHand = 0 and Truck.ID = '34343'
)
THEN
'N/A'
ELSE
(SELECT CreatedByDate from Hand where ID = '34343')
END
我必须:
存在
更改为存在
END CASE
更改为END
Top 1
,以避免以下问题
子查询返回了多个值。这是不允许的,因为
子查询后面是=,!=,=或者当子查询用作
表情
据我所知,你需要删除“结束情况”,只有“结束”。
SELECT
(
CASE
WHEN
Exists(SELECT top 1 NeedHand FROM Truck
WHERE Truck.NeedHand = 0 and Truck.ID = '34343')
THEN
'N/A'
ELSE
(SELECT TOP 1 CreatedByDate FROM Hand WHERE ID = '34343')
END
)
SELECT
(
CASE
WHEN
((SELECT top 1 NeedHand FROM Truck
WHERE Truck.NeedHand = 0 and Truck.ID = '34343') IS NOT NULL)
THEN
'N/A'
ELSE
(SELECT TOP 1 CreatedByDate FROM Hand WHERE ID = '34343')
END
)