SQL Case-Anweisung mit einer untergeordneten select-Anweisung
select case when exists(
select top 1 1
from dg_world_records wr (nolock)
where wr.gametypeid = 4
and wr.playerid = 1
)
then totaltime = (select min(totaltime) from dg_world_records (nolock) where playerid = 1 and gametypeid = 4)
else totaltime = (select max(totaltime) from dg_world_records (nolock) where gametypeid = 4)
end
Meine Vermutung ist, dass dies nicht getan werden kann, aber ich versuche zu tun, einer untergeordneten select-Anweisung innerhalb einer sql-case-Anweisung. Ist das möglich?
Ich versuche zu tun, eine Suche basierend auf der Suche oder nicht Suche nach einem Wert in einer Tabelle. Ich kann dies tun, indem Sie das Aufbrechen der Aussage, aber ich Frage mich, ob es möglich, dies zu tun, in einer einzigen Anweisung.
Hier ist die Tabelle, schema:
CREATE TABLE [dbo].[DG_WORLD_RECORDS](
[WorldRecordId] [int] IDENTITY(1,1) NOT NULL,
[GameTypeId] [int] NOT NULL,
[PlayerId] [int] NOT NULL,
[NumberOfValues] [int] NOT NULL,
[TotalTime] [int] NOT NULL,
[DateOfRecord] [datetime] NOT NULL,
[GameId] [int] NULL,
[UTCInserted] [datetime] NOT NULL CONSTRAINT [DF_DG_WORLD_RECORDSII_UTCInserted] DEFAULT (getutcdate()),
[UTCUpdated] [datetime] NOT NULL CONSTRAINT [DF_DG_WORLD_RECORDSII_UTCUpdated] DEFAULT (getutcdate()),
[SrvName] [varchar](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_DG_WORLD_RECORDSII_SrvName] DEFAULT (@@servername),
EINSCHRÄNKUNG [PK_DG_WORLD_RECORDS] PRIMARY KEY CLUSTERED
(
[WorldRecordId] ASC
)
)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weiß nicht, warum du das schreibst crazy-Abfrage, aber um deine Frage zu beantworten, ja, es getan werden könnte, nur bewegen Sie Ihre Zuordnung aus der case-Anweisung: