SQL查询与临时表的内部联接

ripsin

我正在尝试使用此处显示的示例在临时表中设置值:SQL输出:是否可以创建一个临时输出列?

我已经创建了初始表,在该表中,我使用列名来建立新的“ operdesc”值列的填充。

这是我的工作表查询,可在其中获取所需的COLUMN_NAME值。我想添加一个临时列“ OPERAND”:

SELECT     COLUMN_NAME, DATA_TYPE, 'OPERAND' AS TempField, 
                  CASE WHEN COLUMN_NAME = 'Street' THEN '=' WHEN COLUMN_NAME = 'Town' THEN 'CW' END AS OPERAND FROM         INFORMATION_SCHEMA.COLUMNS WHERE    (TABLE_SCHEMA = 'dbo') AND (TABLE_NAME = 'Customers') ORDER BY COLUMN_NAME

但是,我想更进一步,并使用临时连接对其进行简化。我遵循以下示例:SQL输出:是否可以创建一个临时输出列?但是却挂断了我的剧本。这是我所拥有的,但无法正常工作,希望我已经快结束了:

WITH XOperLU (xopername, xoperdesc)
 AS
 (
  SELECT xopername, CAST(xoperdesc AS VARCHAR(20))
    FROM (
          VALUES ('Street', 'SS'), 
                 ('Town', 'TW')                    
         ) AS XOperLU (xopername, xoperdesc)
 ) SELECT COLUMN_NAME as T1.COLUMN_NAME, DATA_TYPE as T1.DATA_TYPE, S1.xoperdesc AS Description FROM INFORMATION_SCHEMA.COLUMNS  AS T1 WHERE    (TABLE_SCHEMA = 'dbo') AND (TABLE_NAME = 'Clients') 
   INNER JOIN XOperLU AS S1
      ON S1.xopername = T1.COLUMN_NAME;

“客户”表是一个视图。

提前非常感谢!

西蒙

您几乎可以,但是您T1在列别名中使用了别名,而不是在列中使用了别名,最重要的是,您WHERE之前使用别名JOIN这有效:

WITH XOperLU (xopername, xoperdesc)
 AS
 (
  SELECT xopername, CAST(xoperdesc AS VARCHAR(20))
    FROM (
          VALUES ('Street', 'SS'), 
                 ('Town', 'TW')                    
         ) AS XOperLU (xopername, xoperdesc)
 ) SELECT T1.COLUMN_NAME as COLUMN_NAME, T1.DATA_TYPE as DATA_TYPE, S1.xoperdesc AS Description FROM INFORMATION_SCHEMA.COLUMNS  AS T1 
   INNER JOIN XOperLU AS S1
      ON S1.xopername = T1.COLUMN_NAME
      WHERE    (TABLE_SCHEMA = 'dbo') AND (TABLE_NAME = 'Clients')

如果要查看所有未将指定说明设置为其他内容的其他列,例如“ XX”,则可以使用左连接:

WITH XOperLU (xopername, xoperdesc)
 AS
 (
  SELECT xopername, CAST(xoperdesc AS VARCHAR(20))
    FROM (
          VALUES ('Street', 'SS'), 
                 ('Town', 'TW')                    
         ) AS XOperLU (xopername, xoperdesc)
 ) SELECT T1.COLUMN_NAME as COLUMN_NAME, T1.DATA_TYPE as DATA_TYPE, ISNULL(S1.xoperdesc,'XX') AS Description FROM INFORMATION_SCHEMA.COLUMNS  AS T1 
   LEFT JOIN XOperLU AS S1
      ON S1.xopername = T1.COLUMN_NAME
      WHERE    (TABLE_SCHEMA = 'dbo') AND (TABLE_NAME = 'Clients')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询内部连接与临时表

来自分类Dev

基于查询表的SQL Server内部联接

来自分类Dev

与表用户的MariaDB SQL查询内部联接表消息

来自分类Dev

SQL查询内部联接表,打印到HTML <select>标记

来自分类Dev

SQL查询内部联接表,打印到HTML <select>标记

来自分类Dev

SQL表联接查询

来自分类Dev

SQL查询-多个内部联接

来自分类Dev

SQL查询后跟内部联接

来自分类Dev

SQL内部联接到左联接表

来自分类Dev

Oracle性能问题,联接中的内部选择,临时WITH表索引

来自分类Dev

Oracle性能问题,联接中的内部选择,临时WITH表索引

来自分类Dev

sql查询联接条件与联接表

来自分类Dev

SQL查询联接多个表

来自分类Dev

大查询中的内部联接大表

来自分类Dev

查询涉及4个表,内部联接?

来自分类Dev

Rails查询联接到内部表计数

来自分类Dev

MySQL内部联接查询与2个表

来自分类Dev

内部联接查询-3个表

来自分类Dev

使用通过在联接中使用动态查询创建的临时表

来自分类Dev

C#中的内部联接SQL查询

来自分类Dev

没有特定内部联接的SQL查询

来自分类Dev

SQL查询-Count()和内部联接

来自分类Dev

更换内部联接与SQL子查询

来自分类Dev

SQL查询中不使用内部联接

来自分类Dev

从SQL查询中删除了内部联接

来自分类Dev

具有内部联接的SQL子查询

来自分类Dev

SQL在左联接中使用内部查询

来自分类Dev

使用内部联接的SQL查询Distict计数

来自分类Dev

sql,内部联接并查询结果,可能吗?