MS SqlServer 中的 Oracle "Dual" table 相当于什么?
What is the equivalent of the Oracle "Dual" table in MS SqlServer?
MS SqlServer 中的 Oracle "Dual" table 相当于什么?
这是我的 Select
:
SELECT pCliente,
'xxx.x.xxx.xx' AS Servidor,
xxxx AS Extension,
xxxx AS Grupo,
xxxx AS Puerto
FROM DUAL;
在sql-server
中没有dual
你可以简单地做
SELECT pCliente,
'xxx.x.xxx.xx' AS Servidor,
xxxx AS Extension,
xxxx AS Grupo,
xxxx AS Puerto
但是,如果您的问题是因为您从 Oracle
转移了一些引用 dual
的代码,您可以重新创建 table :
CREATE TABLE DUAL
(
DUMMY VARCHAR(1)
)
GO
INSERT INTO DUAL (DUMMY)
VALUES ('X')
GO
在 mssql server
中不需要 DUAL
在 Oracle 中
select 'sample' from dual
等于
SELECT 'sample'
在sql服务器
虽然您通常不需要 SQL 服务器中的 DUAL
table,如 所述,但我需要模拟 DUAL
过去的句法原因。这里有三个选项:
创建 DUAL
table 或查看
-- A table
SELECT 'X' AS DUMMY INTO DUAL;
-- A view
CREATE VIEW DUAL AS SELECT 'X' AS DUMMY;
创建后,您可以像在 Oracle 中一样使用它。
使用常见的 table 表达式或派生的 table
如果您只需要 DUAL
作为单个查询的范围,这也可以:
-- Common table expression
WITH DUAL(DUMMY) AS (SELECT 'X')
SELECT * FROM DUAL
-- Derived table
SELECT *
FROM (
SELECT 'X'
) DUAL(DUMMY)
在SQL服务器中没有双重table。如果你想放一个WHERE
子句,你可以像这样直接放:
SELECT 123 WHERE 1<2
我认为在 MySQL 和 Oracle 中他们需要一个 FROM 子句来使用 WHERE 子句。
SELECT 123 FROM DUAL WHERE 1<2
我想这可能会有所帮助,当您需要根据局部变量连接一些表并从这些表中获取信息时:
注意:局部变量必须已经
Select @XCode as 'XCode '
,@XID as 'XID '
,x.XName as 'XName '
,@YCode as 'YCode '
,@YID as 'YID '
,y.YName as 'YName '
From (Select 1 as tst) t
Inner join Xtab x on x.XID = @XID
Inner join Ytab y on y.YID = @YID
MS SqlServer 中的 Oracle "Dual" table 相当于什么?
这是我的 Select
:
SELECT pCliente,
'xxx.x.xxx.xx' AS Servidor,
xxxx AS Extension,
xxxx AS Grupo,
xxxx AS Puerto
FROM DUAL;
在sql-server
中没有dual
你可以简单地做
SELECT pCliente,
'xxx.x.xxx.xx' AS Servidor,
xxxx AS Extension,
xxxx AS Grupo,
xxxx AS Puerto
但是,如果您的问题是因为您从 Oracle
转移了一些引用 dual
的代码,您可以重新创建 table :
CREATE TABLE DUAL
(
DUMMY VARCHAR(1)
)
GO
INSERT INTO DUAL (DUMMY)
VALUES ('X')
GO
在 mssql server
中不需要 DUAL在 Oracle 中
select 'sample' from dual
等于
SELECT 'sample'
在sql服务器
虽然您通常不需要 SQL 服务器中的 DUAL
table,如 DUAL
过去的句法原因。这里有三个选项:
创建 DUAL
table 或查看
-- A table
SELECT 'X' AS DUMMY INTO DUAL;
-- A view
CREATE VIEW DUAL AS SELECT 'X' AS DUMMY;
创建后,您可以像在 Oracle 中一样使用它。
使用常见的 table 表达式或派生的 table
如果您只需要 DUAL
作为单个查询的范围,这也可以:
-- Common table expression
WITH DUAL(DUMMY) AS (SELECT 'X')
SELECT * FROM DUAL
-- Derived table
SELECT *
FROM (
SELECT 'X'
) DUAL(DUMMY)
在SQL服务器中没有双重table。如果你想放一个WHERE
子句,你可以像这样直接放:
SELECT 123 WHERE 1<2
我认为在 MySQL 和 Oracle 中他们需要一个 FROM 子句来使用 WHERE 子句。
SELECT 123 FROM DUAL WHERE 1<2
我想这可能会有所帮助,当您需要根据局部变量连接一些表并从这些表中获取信息时:
注意:局部变量必须已经
Select @XCode as 'XCode '
,@XID as 'XID '
,x.XName as 'XName '
,@YCode as 'YCode '
,@YID as 'YID '
,y.YName as 'YName '
From (Select 1 as tst) t
Inner join Xtab x on x.XID = @XID
Inner join Ytab y on y.YID = @YID