116 votes

CHOISIR à partir de rien ?

Est-il possible d'avoir une déclaration comme

SELECT "Hello world"
WHERE 1 = 1

en SQL ?

La principale chose que je veux savoir, c'est si je peux CHOISIR à partir de rien, c'est-à-dire si je n'ai pas DE CLAUSE FROM.

160voto

OMG Ponies Points 144785

Ce n'est pas cohérent entre les fournisseurs - Oracle, MySQL et DB2 prennent en charge le dual :

SELECT 'Hello world'
  FROM DUAL

...tandis que SQL Server, PostgreSQL™ et SQLite ne nécessitent pas le FROM DUAL :

SELECT 'Hello world'

MySQL prend en charge les deux.

34voto

rebelliard Points 5821

Dans Oracle :

SELECT 'Hello world' FROM dual

Double équivalent dans SQL Server :

SELECT 'Hello world' 

31voto

chuongtv Points 179

Essaie ça.

Simple :

SELECT *  FROM (VALUES ('Hello world')) t1 (col1) WHERE 1 = 1

Multi :

SELECT *  FROM (VALUES ('Hello world'),('Hello world'),('Hello world')) t1 (col1) WHERE 1 = 1

plus de détails ici : http://modern-sql.com/use-case/select-without-from

6voto

palswim Points 4353

Vous pouvez. J'utilise les lignes suivantes dans une requête StackExchange Data Explorer :

SELECT
(SELECT COUNT(*) FROM VotesOnPosts WHERE VoteTypeName = 'UpMod' AND UserId = @UserID AND PostTypeId = 2) AS TotalUpVotes,
(SELECT COUNT(*) FROM Answers WHERE UserId = @UserID) AS TotalAnswers

L'échange de données utilise Transact-SQL (les extensions propriétaires de SQL Server vers SQL).

Vous pouvez l'essayer vous-même en lançant une requête comme :

SELECT 'Hello world'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X