当前位置: 首页 > 面试题库 >

SQL入门部分:避免重复表达

魏宸
2023-03-14
问题内容

我对SQL完全陌生,但是可以说,在StackExchange Data
Explorer上
,我只想按信誉列出前15位用户,并且我写了这样的内容:

SELECT TOP 15
  DisplayName, Id, Reputation, Reputation/1000 As RepInK
FROM
  Users
WHERE
  RepInK > 10
ORDER BY Reputation DESC

Error: Invalid column name 'RepInK'我认为,这目前是有意义的,因为RepInK不是中的列Users。我可以轻松地说出这个问题WHERE Reputation/1000 > 10,基本上是在重复公式。

因此,问题是:

  • 我可以RepInKWHERE条款中实际使用“列”吗?
    • 我是否可能需要使用此列创建一个虚拟表/视图,然后对其进行SELECT/WHERE查询?
  • 我可以命名一个表达式吗,例如Reputation/1000,所以我只需要在几个地方重复命名而不是公式?
    • 你把这个称作什么?替代宏?有功能吗?存储html" target="_blank">过程?
  • 是否有一个SQL快速表,术语表,语言规范以及我可以用来快速了解该语言的语法和语义的任何内容?
    • 我了解有不同的“风味”吗?

问题答案:

我实际上可以在WHERE子句中使用RepInK“列”吗?

不会,但是您可以放心(Reputation / 1000),即使您在SELECT字段中和WHERE子句中都使用数据库,数据库也会进行一次评估。

我是否可能需要使用此列创建一个虚拟表/视图,然后对其执行SELECT / WHERE查询?

是的,视图是简化复杂查询的一种选择。

我可以命名一个表达式,例如声望/ 1000,所以我只需要在几个地方重复命名而不是公式?

您可以创建一个用户定义的函数,您可以调用诸如之类的函数,该函数convertToK将rep值作为参数接收并返回该参数除以1000。但是,对于像您的示例中这样的简单情况,通常不切实际。

是否有一个SQL快速表,术语表,语言规范以及我可以用来快速了解该语言的语法和语义的任何内容?

我建议练习。您可能要开始遵循上的mysql标签,那里每天都会询问许多初学者问题。下载MySQL,如果您认为自己有一个问题,请尝试寻求解决方案。我认为这将帮助您加快速度,并提高对语言功能的了解。不需要一开始就发布答案,因为这里有一些相当快的话题话题,但是通过一些练习,我相信您可以理解一些要点:)

我了解有不同的“风味”吗?

这些风味实际上是ANSI SQL的扩展。数据库供应商通常使用诸如Transact-
SQL
和PL /
SQL之类的
扩展来扩展SQL语言。



 类似资料:
  • 问题内容: 我是mongodb的新手。我可以知道如何避免重复输入。在关系表中,我们使用主键来避免它。我可以知道如何使用Java在Mongodb中指定它吗? 问题答案: 在选项中使用索引。 您也可以跨多个字段执行此操作。 有关 更多详细信息和示例, 请参阅 文档中的 此部分 。 MongoDB索引可以有选择地施加一个 唯一的键约束 ,以确保不会插入任何索引键值与现有文档值匹配的文档。 如果希望从唯一

  • 什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。 而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的

  • 我有一个简单的项目,该项目将个人信息提供给数据库(sqlite),现在我想避免插入重复值(按名称),我不能做什么?谢谢你们

  • 本文向大家介绍避免在MongoDB中重复输入?,包括了避免在MongoDB中重复输入?的使用技巧和注意事项,需要的朋友参考一下 为了避免在MongoDB中重复输入,可以使用。语法如下- 让我们实现以上语法。避免在MongoDB中重复条目的查询如下- 现在在上面的集合中插入一些记录。插入记录的查询如下- 每当您尝试再次插入相同记录时,都会出现此错误- 让我们插入另一条记录。查询如下- 在method

  • 我有一个非常简单的表,有3列,我需要一个尽可能轻量级的查询,只有当列有新值时才能插入。 如何编写sql查询来实现这一点?我在网站上已经看到了一些例子,但它们都被我无法理解的更复杂的查询(一些涉及子查询)所混淆。 似乎有不同的方法来做这件事,我需要找到最轻量级的一个,这样我就可以在循环中重复它,一次插入多个标签,而不会给服务器带来太大的压力。

  • 我认为这是一个常见的问题,但我还没有找到任何解决方案,也许我没有在谷歌上正确地搜索这个问题。总之,我有一个在表中插入多行的过程(在同一个事务中的许多其他事情中),但是这个过程是在多个线程和多个服务器中执行的。 描述是唯一的,但不作为数据库(旧版)中的约束,我想避免插入重复的描述。我已经隔离了搜索并插入到一个独立的事务中,我想在选择之前锁定表,如果它不存在,则在“保存”之后释放它。 我想要这样的东西