• 使用 INSERT 和 SELECT 子查询插入行


    INSERT 语句中的 SELECT 子查询可用于将一个或多个表或视图中的值添加到另一个表中。使用 SELECT 子查询还可以同时插入多行。

    在以下示例中,INSERT 语句将 AdventureWorks 的 Sales.SalesReason 表中 SalesReason 为 Marketing 的所有行中的一些数据插入到一个单独的表中。

     
     
    USE AdventureWorks;
    GO
    CREATE TABLE MySalesReason (
        SalesReasonID int NOT NULL,
        Name nvarchar(50),
        ModifiedDate datetime);
    GO
    INSERT INTO MySalesReason
        SELECT SalesReasonID, Name, ModifiedDate
        FROM AdventureWorks.Sales.SalesReason
        WHERE ReasonType = N'Marketing';
    GO
    SELECT SalesReasonID, Name, ModifiedDate 
    FROM MySalesReason;
    GO
    
    

    子查询的选择列表必须与 INSERT 语句的列列表匹配。如果没有指定列列表,选择列表必须与正在其中执行插入操作的表或视图的列匹配。

    String insertsql = "insert into t_windowsDetails (applicationname,winname,devicename,"
         + "lx,ly,lwidth,lheight,lxunit,lyunit,px,py,pwidth,pheight,pxunit,pyunit,fontresize,fontadjust) "
         + "select '"
         + applicationname
         + "','default',"
         + "devicename,lx,ly,lwidth,lheight,lxunit,lyunit,px,py,pwidth,pheight,pxunit,pyunit,fontresize,fontadjust "
         + "from t_windowsDetails where applicationname='default' and winname='default' and devicename='"
         + devicename
         + "'";

     上面的applicationname是java中的变量,‘default’是常量值。后面的是表中的列。这样拼接完成insert和select子查询。

  • 相关阅读:
    Java——spring入门
    Java日志管理之logback
    Java之MyBatis
    Java之JDBC
    Java核心类——BigDecimal
    Java核心类——BigInteger
    Java核心类——枚举类
    Java核心类——JavaBean
    Java核心类——包装类型
    Java核心类——StringJoiner
  • 原文地址:https://www.cnblogs.com/duanxz/p/2619828.html
Copyright © 2020-2023  润新知