使用SQL Server 2008检查表内是否存在ID
我在SQL Server 2008中的select语句时遇到了一些问题。我正在构建一个票务销售应用程序网站,我需要确保票据已经售出无法搜索。下面是我的存储SQL过程:使用SQL Server 2008检查表内是否存在ID
spGetSeatBySection
@SectionID int
AS
SELECT
[SeatID],
[SectionID],
[SeatName],
[SeatPrice],
[SeatDesc],
[SeatIsActive],
FROM [myDataBase].[dbo].[Seats]
WHERE SectionID = @SectionID
AND SeatIsActive = 1
AND **IF EXISTS CLAUSE**;
我已经尝试了几个已经张贴在这里,如是否存在其他方法('表名,‘列名’)。有没有另一种方式来检查这个没有重新设计我的SELECT
声明?
类似的东西与EXISTS:
SELECT
[SeatID],
[SectionID],
[SeatName],
[SeatPrice],
[SeatDesc],
[SeatIsActive],
FROM [myDataBase].[dbo].[Seats]
WHERE SectionID = @SectionID
AND SeatIsActive = 1
AND EXISTS (SELECT o.SeatID
FROM OrderItems o
WHERE o.SeatID = [Seats].SeatID)
你也许可以做到这:
SELECT
s.[SeatID],
s.[SectionID],
s.[SeatName],
s.[SeatPrice],
s.[SeatDesc],
s.[SeatIsActive],
FROM [myDataBase].[dbo].[Seats] s
INNER JOIN OrderItems o ON o.SeatID = s.SeatID
WHERE s.SectionID = @SectionID
AND s.SeatIsActive = 1
这就是我正在寻找的,但唯一的问题是我引用一个名为OrderItems的表,我需要让WHERE子句说SeatID = SeatID(虽然我不通过SeatID)。有没有任何方式引用座位ID而不将其声明为标量变量? WHERE SectionID = SectionID和SeatIsActive = 1 AND EXISTS(SELECT SeatID FROM OrderItems WHERE SeatID = SeatID); – nate00234 2013-03-18 23:06:10
好吧,我编辑答案,它应该像你一样工作,并希望它。 – Justin 2013-03-19 06:52:00
假设这些座位都存储sowhere,您可以查询到他们,你会使用这样的事情: 何处存在(子查询) – 2013-03-18 22:03:15
SeatIsActive是否指定它尚未销售? – 2013-03-18 22:12:54
@ ron tornambe出于任何原因,我们需要禁用部分或特定座位,我不能让他们出现在我的搜索中。 – nate00234 2013-03-18 22:51:13