Oracle" Dual"等同于什么? MS SqlServer中的表?
这是我的Select
:
SELECT pCliente,
'xxx.x.xxx.xx' AS Servidor,
xxxx AS Extension,
xxxx AS Grupo,
xxxx AS Puerto
FROM DUAL;
答案 0 :(得分:54)
在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
答案 1 :(得分:20)
您在mssql server
中不需要 DUAL在oracle
select 'sample' from dual
等于
SELECT 'sample'
在sql server中
答案 2 :(得分:2)
虽然Jean-François Savard解释了您在SQL Server中通常不需要DUAL
表,但出于语法原因,我需要模仿DUAL
。以下是三个选项:
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 :(得分:-1)
在SQL Server中没有双表。如果你想放一个WHERE
子句,你可以直接把它直接放在这样:
SELECT 123 WHERE 1<2
我认为在MySQL和Oracle中,他们需要一个FROM子句来使用WHERE子句。
SELECT 123 FROM DUAL WHERE 1<2