子选择where子句标准

时间:2018-05-07 21:03:40

标签: tsql

处理我的第一个类的ETL分配,并需要有关转换的插入查询的帮助,特别是将authorID插入到Transform表中。 。我的传入数据是:Incoming data

我的转化表有3列,Book(varchar(50)ISBN(varchar(50)author(int)。 正确的作者值需要来自作者表,该表具有: id(int)FirstName(varchar(35)LastName(varchar(35)

子选择中的where子句需要什么?

INSERT INTO TRANSFORM.NewBook
    SELECT 
        nb.book,
        ISBN,
       (SELECT a.id 
           FROM Library.Author AS a
           WHERE nb.Author = ????????? AS Authorid
       FROM [EXTRACT].NewBook AS nb) 

1 个答案:

答案 0 :(得分:0)

你需要做一个连接来获取你所追求的数据,这看起来是作者的名字,所以我试试:

INSERT INTO TRANSFORM.NewBook
        SELECT nb.book ,
               nb.ISBN ,
               a.id
        FROM   extract.newbook bn
               JOIN library.author a 
                   ON CONCAT_WS(' ' , a.firstname, a.lastName) = nb.author;

concat_ws适用于sqlserver 2017.您可以尝试CONCAT(a.firstname, ' ', a.lastName)a.firstname + ' ' + a.lastName = nb.author的旧备用