AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[alias](dba)

Martin Hope
mikem
Asked: 2021-01-31 15:37:04 +0800 CST

mysql - 将别名列添加为新列

  • 0

我有以下mysql查询...

select x.timest,     
    max(case when x.devloc='outside' then x.value end) as outside,     
    max(case when x.devloc='hvac_main_return' then x.value end) as hvac_main_return,     
    max(case when x.devloc='hvac_main_supply' then x.value end) as hvac_main_supply     
from sample x where date(timest) = curdate() 
group by timest     
order by timest desc;

它给了我这样的输出:

+---------------------+---------+------------------+------------------+
| timest              | outside | hvac_main_return | hvac_main_supply |
+---------------------+---------+------------------+------------------+
| 2021-01-28 23:59:54 | 24.8000 |          67.4375 |          82.9625 |
| 2021-01-28 23:58:45 | 24.9125 |          67.1000 |          80.8250 |
| 2021-01-28 23:57:42 | 24.9125 |          66.0875 |          78.2375 |
| 2021-01-28 23:56:33 | 24.9125 |          64.9625 |          74.8625 |
| 2021-01-28 23:55:32 | 25.0250 |          62.3750 |          73.0625 |
| 2021-01-28 23:54:17 | 25.0250 |          62.8250 |          74.7500 |
+---------------------+---------+------------------+------------------+

有谁知道我如何将 hvac_main_return 和 hvac_main_supply 之间的差异添加为另一列?

编辑:按要求提供更多信息:

mysql> show create table sample\G
*************************** 1. row ***************************
       Table: sample
Create Table: CREATE TABLE `sample` (
  `property` varchar(50) DEFAULT NULL,
  `devloc` varchar(50) DEFAULT NULL,
  `sensortype` varchar(50) DEFAULT NULL,
  `timest` datetime DEFAULT NULL,
  `value` decimal(8,4) NOT NULL,
  KEY `property` (`property`),
  KEY `devloc` (`devloc`),
  KEY `sensortype` (`sensortype`),
  KEY `timest` (`timest`),
  KEY `value` (`value`),
  KEY `timest_2` (`timest`,`devloc`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql alias
  • 2 个回答
  • 160 Views
Martin Hope
Ciaran Gallagher
Asked: 2020-07-03 00:12:45 +0800 CST

SQL Server Alias 不适用于我的数据库实例

  • 0

我在我的机器上设置了一个 SQL Server 2019 实例,它的计算机名称格式如下:

AB-ABC1234ABAB

我的 SQL 实例名为“SQL2019”,因此我通过提供以下名称连接到本地 SQL 实例:

AB-ABC1234ABAB\SQL2019

我有依赖服务器别名的脚本,例如

  • 别名1
  • 别名2

要设置这些,我导航到“Sql Server 配置管理器”并执行以下步骤:

  1. 导航到“SQL2019 协议”并启用“TCP/IP”
  2. 导航到“SQL Native Client 11.0 配置(32 位)”的“别名”
  3. 创建了指向我的服务器名称的别名“Alias1”:AB-ABC1234ABAB\SQL2019 和协议“tcp”
  4. 对别名 2 重复上述步骤
  5. 对“SQL Native Client 11.0 配置”也重复上述两个步骤。
  6. 打开 Windows 服务并重新启动“SQL Server (SQL2019)”服务。

在此处输入图像描述

在 SQL Server Management Studio 中,我使用 Windows 身份验证连接到我的实例,然后我创建了一个新登录名并选择了“SQL Server 身份验证”。然后,我通过将计算机名称指定为服务器 (AB-ABC1234ABAB\SQL2019) 登录来测试该登录。然后我断开连接并在登录框中输入别名(例如 Alias1),选择 SQL Server 身份验证并提供我之前使用的相同登录名。

当我这样做时,连接尝试超时。看来这两个别名都不适合我。

我得到的错误是标准错误,例如“提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例”。

我可以采取哪些步骤来解决此问题?服务器名称中的连字符是否值得关注?

我注意到,如果我删除 SQL 别名,我会得到一个稍微不同的错误:“错误:40 - 无法打开与 SQL Server 的连接 - 找不到网络路径。”

sql-server alias
  • 1 个回答
  • 1023 Views
Martin Hope
grego
Asked: 2020-03-19 16:48:40 +0800 CST

ORA-00904 使用别名时出现无效标识符错误

  • 0

我试图返回两个子查询的乘积,并认为我可以通过给每个子查询加上别名来让生活更轻松,然后将两个别名相除以获得我想要的数字,如下所示:

select distinct (select SUM(pest.AREA_HA) from WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY pest where ORG_UNIT_NO IN (1904, 1830,1831, 1902)) as Ha_IN_RKB, (select SUM(pest.AREA_HA) from WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY pest) as Ha_total, ROUND( (Ha_IN_RKB / Ha_total) ,3) from WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY pest

但这会导致 00904. 00000 - “%s: invalid identifier” 错误(Oracle 不喜欢Ha_IN_RKBor Ha_total)。

如下重写查询是可行的,但相当庞大:
select distinct (select SUM(pest.AREA_HA) from WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY pest where ORG_UNIT_NO IN (1904, 1830,1831, 1902)) Ha_IN_RKB, (select SUM(pest.AREA_HA) from WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY pest) Ha_total, ROUND( ((select SUM(pest.AREA_HA) from WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY pest where ORG_UNIT_NO IN (1904, 1830,1831, 1902)) / (select SUM(pest.AREA_HA) from WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY pest)) ,3) as RKB_pct from WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY pest

有人知道为什么我不能做这个ROUND( (Ha_IN_RKB / Ha_total) ,3)工作吗?

oracle-12c alias
  • 1 个回答
  • 513 Views
Martin Hope
James Jenkins
Asked: 2018-12-13 06:28:37 +0800 CST

是否可以判断传入连接是否正在使用 SQL Server 别名?

  • 0

使用 SQL Server 配置管理器创建供客户端使用的服务器别名是一个很酷的工具,在很多情况下都可以使用

在我的 DBA 职位上,我无权访问应用程序服务器,无法查看SQL Server 配置管理器或SQL Server 客户端网络实用程序(不确定这是正确的链接)是否用于创建别名。

有什么方法可以使用 SSMS 或任何日志、事件等来识别传入连接正在与别名连接吗?

sql-server alias
  • 1 个回答
  • 127 Views
Martin Hope
WebUserLearner
Asked: 2018-06-24 08:51:49 +0800 CST

SQL中同一张表的两个连接

  • 4

我有 2 个 SQL 表:NAMES并且RELATIONSHIPS目前NAMES只有 2 列:name和name_id. 另一个是表中人员之间的关系NAMES列表。它有 3 列:primaryperson_id、relatedperson_id和relationship_id。primaryperson_id和related_person_id是表中的name_ids NAMES。每个人都NAMES可以在的主要列或相关列中有多个条目RELATIONSHIPS(这是多对多关系吗?)。

此查询有效:

SELECT  people.name AS 'primary', relationships.related_person_id AS relatedto
FROM relationships
JOIN people
ON people.name_id=relationships.primary_person_id 
ORDER BY people.name_id;

但我想在relatedto列中显示一个名称(即文本)而不是 ID 号。我怎样才能做到这一点?

alias
  • 1 个回答
  • 8036 Views
Martin Hope
DiGiD
Asked: 2018-04-11 08:20:47 +0800 CST

是否有正当理由将列别名为完全相同的名称/大小写?

  • 1

我继承了一些这样的代码:

SELECT
  Col_1,
  Col_2 Col_2,
  Col_3
...

别名是否Col_2真的完成了任何事情,还是完全不需要?

select alias
  • 4 个回答
  • 2016 Views
Martin Hope
Halit D
Asked: 2018-03-11 11:28:50 +0800 CST

SQL 中的条件别名

  • 1

有没有办法给 SQL 列提供条件别名?

因为我有两个表Fields和Category。每个字段的含义都会有条件地改变。

 DECLARE @f1 NVARCHAR(10);
 set @f1= (select Field1 from Category);
 select Field1 as @f1 from AdditionalFields 
sql-server alias
  • 1 个回答
  • 2613 Views
Martin Hope
Zach Smith
Asked: 2017-08-19 05:38:48 +0800 CST

为什么 Visual Studio 中需要“AS”表别名关键字(数据库项目)

  • 4

到目前为止,我一直直接在 SQL Server 实例上工作,现在正在研究如何最好地将数据库保持在源代码控制中。visual studio 数据库项目似乎正是我想要的。

但是,在尝试构建一个相当小的数据库时,我遇到了数百个SQL71561错误。代码是这样的:

CREATE VIEW [dbo].[View Name] AS
SELECT
    EA.colName,
    ...
FROM
    DbName.dbo.TableName EA

错误是这样的:

SQL71561:视图:[dbo].[视图名称] 包含对对象的未解析引用。对象不存在或引用不明确,因为它可能引用以下任何对象:
[DbName].[dbo].[TableName].[colName] 或 [DbName].[dbo].[TableName]。 [EA]::[列名]。

如果我AS在表别名中添加一个,那么代码似乎被接受了。似乎允许列别名跳过“AS”关键字。

visual-studio alias
  • 1 个回答
  • 1166 Views
Martin Hope
Evan Carroll
Asked: 2016-11-18 08:08:45 +0800 CST

什么时候需要 FROM 子句中的 COLUMN 别名?

  • 6

FROM提供column_alias,SQL 规范调用这些<derived column list>子句。这就是 postgres 文档对它们的评价,

FROM包含别名的项目的替代名称。别名用于简洁或消除自连接的歧义(同一个表被扫描多次)。当提供别名时,它会完全隐藏表或函数的实际名称;比如给定FROM foo AS f的,其余的SELECT必须把这个FROMitem称为fnot foo。如果编写了别名,则还可以编写列别名列表来为表的一个或多个列提供替代名称。

什么时候需要这些?我什么时候不能只使用 COLUMN 别名?

SELECT t.*
FROM table_name AS t (a,b,c);

对比

SELECT t.col1 AS a, t.col2 AS b, t.col3 AS c
FROM table_name AS t;

此示例取自@ypercubeᵀᴹ 选择的答案,这似乎不太有用。

上述上下文中的 FROM 别名没有真正的好处,除非你是

  • 依赖部分别名(不别名整个表)
  • 这取决于升序列排序
  • 你的表有超过三列(或者你可以在 from 子句中明确地写出来)。

这样做似乎依赖于t.*增加模糊性的常规堆叠的危险。那么什么时候FROM混叠有用呢?

postgresql alias
  • 1 个回答
  • 1662 Views
Martin Hope
Wildcard
Asked: 2016-11-05 16:11:23 +0800 CST

Postgres FROM 子句中的列别名?

  • 6

我正在阅读 Postgres 文档、关于 SELECT 语句的页面,并且遇到了我从未遇到过的别名方面的问题。

在FROM 子句的部分,副标题alias,有一句话说明:

如果编写了别名,则还可以编写列别名列表来为表的一个或多个列提供替代名称。

文档中没有我能找到的示例。

我知道如何将输出名称设置为别名,但这似乎不是一回事。


SELECT 的概要包括以下几行:

... SELECT [ ALL | DISTINCT [ ON (expression[, ...] ) ] ] * |expression[ [ AS ]output_name] [, ...] [ FROMfrom_item[, ...] ] ...

并定义from_item为:

其中 from_item 可以是以下之一:

[ ONLY ]table_name[ * ] [ [ AS ]alias[ (column_alias[, ...] ) ] ] (select) [ AS ]alias[ (column_alias[, ...] ) ] ...(other forms omitted)...

请注意,from_item实际上包括 column_alias.


对我来说,( select )可以在 FROM 子句(而不仅仅是 output_names,在 SELECT 语句的“表达式”中)为表单赋予列别名是有意义的,因为在大多数情况下,子查询的“列”将被显式选择因此序列将是已知的。所以我想在这种情况下 column_alias 值可能只是一个名称列表,并且它们将按顺序与子查询返回的列匹配。(虽然一个例子会很好。)

但是,如何将列别名用于 table_name? 您是否必须知道表中定义的列的确切顺序,或者您可以在 FROM 子句中为其中的一两个设置别名?

如果您只想column_alias为一个名称很长的列设置 a(并且不为其他列设置别名)怎么办?这可能吗?(如果是这样,这个 Postgres 是特定的吗?)

postgresql alias
  • 1 个回答
  • 4186 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve