Est-ce qu'une clause SQL if else peut avoir un select à l'intérieur?

Je doute que ce soit possible mais voilà.

J'ai besoin de formuler une requête SQL (absolument pas autorisée une procédure stockée) qui fait quelque chose comme ceci:

Select A.valueFromTable -B.ValueFromTable As result From table as A inner join table as B on A.ValueID = B.ValueID Where ValueID =5 

Mais j'ai besoin de la condition:

 if (result <0) Begin select A As result .... end else select AB as result ... 

Toute aide serait grandement appréciée même si elle confirme que cela ne peut être fait.

À partir des searchs, je crois que la version de SQL Server que j'utilise actuellement est 8.0

 Select CASE WHEN A.valueFromTable -B.ValueFromTable < 0 THEN A.valueFromTable ELSE A.valueFromTable -B.ValueFromTable END As result From table as A inner join table as B on A.ValueID = B.ValueID Where ValueID =5 

Utilisez une instruction CASE:

 SELECT CASE WHEN AB < 0 THEN A ELSE AB END AS result 

Vous searchz l'instruction SQL CASE .

 select case when (AB < 0) then A else AB end as result from ... 

Je suis assez confiant que vous pouvez find une solution en utilisant IF conditions, mais si tout le rest échoue peut-être essayer le vraiment obfusqué: SELECT (A.valueFromTable – (résultat <0) * B.ValueFromTable)

Cela repose sur de fausses conditions évaluant à zéro.