繁体   English   中英

SQL Server:连接和 where 子句

[英]SQL Server : concatenate and where clause

我试图连接来自两个表CustomerInvoice三列,创建一个新列并在 SQl Server 中找到名称以“Astridgruber”开头的 new_id 成员。

以下导致错误。

select 
    concat(c.FirstName, c.LastName, i.InvoiceId) as New_Id
from 
    Invoice i, Customer c
where 
    i.[CustomerId] = c.CustomerId 
where 
    New_Id = 'AstriGruber%'

帮助将不胜感激。

这些是来自 Chinook 数据库的表:

图片

评论太长了。 你有几个问题:

  1. 您应该使用现代的、显式的JOIN语法,而不是逗号连接;
  2. WHERE子句太多; AND条件在一起;
  3. 您不能在WHERE子句中使用别名; concat(c.FirstName,c.LastName,i.InvoiceId)替换New_Id
  4. 您应该使用LIKE ,而不是=

您的所有查询应如下所示:

select concat(c.FirstName,c.LastName,i.InvoiceId) as New_Id
from Invoice i
join Customer c on i.CustomerId = c.CustomerId 
where concat(c.FirstName,c.LastName,i.InvoiceId) LIKE 'AstriGruber%'

dbfiddle 上的演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM