web-dev-qa-db-ja.com

MS SqlServerのOracleの「デュアル」テーブルに相当するものは何ですか?

MS SqlServerのOracleの「デュアル」テーブルに相当するものは何ですか?

これは私のSelectです:

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

sql-serverには、簡単にできるdualはありません

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

ただし、Oracleを参照するコードをdualから転送したことが原因である場合は、テーブルを再作成できます。

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

MssqlサーバーにはDUALは必要ありません

Oracleの場合

select 'sample' from dual

等しい

SELECT 'sample'

SQLサーバー内

20
Omer K

Jean-FrançoisSavard で説明されているように、通常SQL ServerにDUALテーブルは必要ありませんが、過去には構文上の理由でDUALをエミュレートする必要がありました。次の3つのオプションがあります。

DUALテーブルまたはビューを作成します

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

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

作成したら、Oracleと同じように使用できます。

共通テーブル式または派生テーブルを使用する

単一のクエリのスコープにDUALだけが必要な場合は、次のようにすることもできます。

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

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