我在w3schools上练习并使用“客户”表(可以在右侧选择它)。至于我正在使用哪个DBMS,我不确定。该站点说:“我们的SQL教程将教您如何在以下方面使用SQL:MySQL,SQL Server,MS Access,Oracle,Sybase,Informix,Postgres和其他数据库系统。” -这些DBMS之间的语法是相同还是非常相似?
我只想提取客户的名字。我认为这应该可以解决问题:
SELECT LEFT(ContactName, CHARINDEX(' ',ContactName)-1)
FROM Customers;
它不起作用,但是什么也不返回。就像它一样,它不会对其进行处理,在输出窗口中,它向我显示了起始页,因此没有错误消息。我并没有真正了解其背后的真正原因,因为当我将CHARINDEX
本身放在SELECT
语句中时,它给了我预期的结果。
下一个问题将是我如何处理多个空格(当有人使用中间名时),但是由于我事先被卡住了,所以我没有涉及到这一部分。
答案 0 :(得分:1)
我注意到您在查询中使用了两个不同的列: ContactName 和 CustomerName 。为什么会这样?
我想您的查询应该这样写:
SELECT
LEFT(ContactName, CHARINDEX(' ', ContactName) - 1) AS FirstName
FROM
Customers;
它还可以使用SUBSTRING进行工作,如下所示:
SELECT
SUBSTRING(ContactName, 1, CHARINDEX(' ', ContactName) - 1) AS FirstName
FROM
Customers;
希望这会有所帮助。
答案 1 :(得分:1)
SQL
- Sql是用于查询关系数据库系统的语言。SQL完整形式是结构化查询语言。
- Sql就像更新,删除,查找等。
- sql基本上使用多线程概念,其中oracle使用多处理器oracle用于高级数据库处理(如银行业务) 等
- Sql语言在oracle中用作书写语言。 5。在SQL Server中没有事务控制。
MySQL:
- MySQL本身也是一个使用SQL语言的数据库工具。它是开源的。
- MySQL在插入和删除数据方面较弱。但这是用于数据存储和引用数据的绝佳选择。
- MySQL是一个关系数据库管理系统。您可以将SQL查询提交到MySQL数据库以存储,检索,修改或删除 数据。
- 基本上,MySQL是拥有所有内容的众多书籍之一,SQL是您阅读该书籍的方式。
数据库管理系统(DBMS):
数据库管理系统(DBMS)是一种计算机软件应用程序,可与用户,其他应用程序以及 数据库本身可以捕获和分析数据。
- 数据库管理系统(DBMS)是程序的集合,这些程序管理数据库结构并控制对数据的访问 存储在数据库中。
- DBMS包括MySQL,PostgreSQL,Microsoft SQL Server,Oracle,Sybase和IBM DB2。
- 有时将DBMS宽松地称为数据库。
它们之间的语法非常相似。
实际上,您选择的列是错误的,您通过客户名称索引选择了ContactName,然后您不需要减去其索引。这将返回客户的名字。
SELECT LEFT(ContactName, CHARINDEX(' ',ContactName))
FROM Customers;