web-dev-qa-db-fra.com

Quel est l'équivalent de la table "Dual" Oracle dans MS SqlServer?

Quel est l'équivalent de la table "Dual" Oracle dans MS SqlServer?

Voici mon Select:

SELECT pCliente,
       'xxx.x.xxx.xx' AS Servidor,
       xxxx AS Extension,
       xxxx AS Grupo,
       xxxx AS Puerto
FROM DUAL;
44
wabregoc

Dans sql-server, il n'y a pas dual vous pouvez simplement faire

SELECT pCliente,
       'xxx.x.xxx.xx' AS Servidor,
        xxxx AS Extension,
        xxxx AS Grupo,
        xxxx AS Puerto

Toutefois, si votre problème vient du fait que vous avez transféré du code de Oracle, qui fait référence à dual, vous pouvez recréer la table:

CREATE TABLE DUAL
(
DUMMY VARCHAR(1)
)
GO
INSERT INTO DUAL (DUMMY)
VALUES ('X')
GO
56

Vous n'avez pas besoin [~ # ~] dual [~ # ~] dans le serveur mssql

sous Oracle

select 'sample' from dual

est égal à

SELECT 'sample'

dans le serveur SQL

20
Omer K

Bien que vous n’ayez généralement pas besoin d’une table DUAL dans SQL Server comme expliqué par Jean-François Savard , j’ai dû émuler DUAL pour des raisons syntaxiques dans le passé. . Voici trois options:

Créer une table ou une vue DUAL

-- A table
SELECT 'X' AS DUMMY INTO DUAL;

-- A view
CREATE VIEW DUAL AS SELECT 'X' AS DUMMY;

Une fois créé, vous pouvez l'utiliser comme dans Oracle.

Utiliser une expression de table commune ou une table dérivée

Si vous avez simplement besoin de DUAL pour l'étendue d'une requête unique, vous pouvez également le faire:

-- Common table expression
WITH DUAL(DUMMY) AS (SELECT 'X')
SELECT * FROM DUAL

-- Derived table
SELECT *
FROM (
  SELECT 'X'
) DUAL(DUMMY)
3
Lukas Eder