标签: alias

在 GROUP BY 中使用列别名

我有一个查询,其中链接了两列。为什么别名不能在工作中的GROUP BY条款,但ORDER BY条款,它的工作?如何正确编写选择?

SELECT
  KOS_VER_ID        AS "Vertrag"
  , WHR_ISO_3_CODE  AS "Waehrung"
  , KOS_KOA_ST_KZN || '  -  ' || ST_LANGBEZ_EN as "Kostenart"
  , SUM (KOS_BETRAG) AS "Summe pro KOA"
FROM
  KOSTEN
  , WAEHRUNG
  , SCHLUESSELTABELLE
WHERE 
  KOSTEN.KOS_VERHI_WHR_ID = WAEHRUNG.WHR_ISO_ID
  AND KOSTEN.KOS_KOA_ST_KZN = SCHLUESSELTABELLE.ST_ID
  AND KOS_VER_ID in (2509, 2510, 2511)
GROUP BY
  KOS_VER_ID
  , WHR_ISO_3_CODE
  , KOS_KOA_ST_KZN || '  -  ' || ST_LANGBEZ_EN
ORDER BY
  "Vertrag"
  , "Kostenart"
;
Run Code Online (Sandbox Code Playgroud)

oracle alias group-by

5
推荐指数
1
解决办法
3万
查看次数

如何以及何时在我的 SQL 语句中使用别名

我有一个查询,我在其中进行了一些计算,然后为该列指定了别名。在下一列中,我想在 IF 语句中使用该计算的结果。当我将别名用作条件时,MySQL 无法识别它,而是要求我重写整个查询,在它周围放置一些括号,然后执行条件检查。
这是 SQL 查询:

SELECT StudentId
    ,SubjectID
    , (COUNT(StudentId) / (
        SELECT COUNT(SubjectID) 
        FROM lectureattendancein 
        WHERE SubjectID ='MIS4' ) * 100) AS Percentage
    , IF((COUNT(StudentId) / (
        SELECT  COUNT(SubjectID) 
        FROM lectureattendancein  
        WHERE SubjectID ='MIS4' 
        )* 100) >= 80, 'ALLOWED', 'NOT ALLOWED') AS ExamAdmit
FROM attendancein 
GROUP BY StudentId, SubjectID 
HAVING SubjectID='MIS4' 
ORDER BY StudentId ASC
Run Code Online (Sandbox Code Playgroud)

我想在 IF 语句中使用名为Percentage的列别名

mysql alias

5
推荐指数
2
解决办法
2128
查看次数

两个不同表的相同表别名 (Oracle)

此示例具有用于两个不同表的相同表别名。我不明白为什么 Oracle 允许这样做,如果允许,结果如何有意义。

create table Table_A (x number);
create table Table_B (x number);
insert into Table_A values (1);
insert into Table_A values (2);
insert into Table_B values (2);
insert into Table_B values (3);

select * from Table_A ;
         X
----------
         1
         2
2 rows selected.

select * from Table_B ;
         X
----------
         2
         3
2 rows selected.

select *
  from Table_A  T
  join Table_B  T
    on T.x = T.x;
         X          X
---------- ----------
         2          2
         2          2
         3          3
         3 …
Run Code Online (Sandbox Code Playgroud)

oracle oracle-11g-r2 alias oracle-12c table

5
推荐指数
1
解决办法
1412
查看次数

让 SQL Server 识别日期列

我试图在昨天(不是硬编码)的订单表上获取 IDS 的计数,其中表中的日期对应于下订单的时间。

我的桌子看起来像这样

orders (
order_id INT PRIMARY KEY
, user_id INT
, date_created DATE
, order_value FLOAT
, city_id INT
)
Run Code Online (Sandbox Code Playgroud)

我已使用此代码在表中获取今天的日期 -

Select *,DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) as Today
From orders
Run Code Online (Sandbox Code Playgroud)

这很好用,但是当我尝试尝试下面的 where 子句时

Select *,DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) as Today
From orders
where Today -1 = date_created;
Run Code Online (Sandbox Code Playgroud)

我收到这个错误“无效的列名‘今天’”所以我的问题只是如何让这个表识别我作为新列添加的日期并允许我对其执行工作?

提前致谢

sql-server alias date

5
推荐指数
2
解决办法
845
查看次数

如何在MySQL中选择所有列加上一个别名列

这是一个简单的问题,但我找不到答案。

我想使用SELECT *语句选择表中的所有列,但我还需要通过这种方式为 UUID 列添加别名:BIN_TO_UUID(ID) as ID

我需要这样的东西:

SELECT BIN_TO_UUID(ID) AS ID, * FROM TABLE_NAME
Run Code Online (Sandbox Code Playgroud)

另外,最好删除别名的原始列,以免同一列两次具有不同的名称,但前提是这不会向查询添加更多文本,因为我将不得不对所有 16 个表重复此操作。

mysql query select alias mysql-8.0

5
推荐指数
1
解决办法
2万
查看次数

MySQL 重用 select 别名

我目前有一个查询,我正在执行两个子查询来获取 X、Y 数据:

SELECT
  t.series AS week,
  ( ... ) X,
  ( ..., AND ... ) Y,
  ROUND(( ... ) * 100) / ( ..., AND ... ), 2) Z
FROM series_tmp t
Run Code Online (Sandbox Code Playgroud)

Y 是 X 的子集,因为我只对现有条件应用一个附加条件,如果 X 是:

SELECT COUNT(*)
FROM t1
INNER JOIN t2
ON t2.id = t1.another_id
WHERE t2.something = 1
AND t1.date BETWEEN t.series AND t.series + INTERVAL 6 DAY
Run Code Online (Sandbox Code Playgroud)

那么 Y 还有一个附加的 AND 条件:

SELECT COUNT(*)
FROM t1
INNER JOIN t2
ON t2.id = t1.another_id …
Run Code Online (Sandbox Code Playgroud)

mysql subquery alias

4
推荐指数
1
解决办法
5176
查看次数

如何使用在 case 之前定义了别名的 CASE?

我如何在本示例(Oracle 数据库)中pop进一步使用别名case

select  
   (select sum(ccs_pop) from rap4) as pop,
case 
    when pop+x=a+b+c then pop+x
end as sum1,
case 
    when pop+y=d+e+f then pop+y
end as sum2
from rap4
Run Code Online (Sandbox Code Playgroud)

想法是我在复杂的情况下需要“pop”,并且在很多句子中都需要“pop”,我需要使用别名或其他东西......

oracle case alias

3
推荐指数
1
解决办法
2万
查看次数

如何在 SQL Server 2022 中创建别名

根据https://learn.microsoft.com/en-us/sql/relational-databases/native-client/sql-server-native-client?view=sql-server-ver16

SQL Server Native Client(通常缩写为 SNAC)已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中删除。不建议在新开发中使用 SQL Server Native Client(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。今后切换到适用于 SQL Server 的新 Microsoft OLE DB 驱动程序 (MSOLEDBSQL) 或最新的适用于 SQL Server 的 Microsoft ODBC 驱动程序。

我曾经使用 SQL Server 配置管理器创建别名,但从 SQL Server 2022 开始,创建别名的表单已禁用所有字段:

别名 - 新

如何在 SQL Server 2022 中创建别名,这可能吗?

alias sql-server-2022

3
推荐指数
1
解决办法
3157
查看次数

`x` 在这个查询中代表什么?

select 
convert(varchar(10),  TotalSeconds / 3600) +':'+
convert(varchar(10),   TotalSeconds % 3600 / 60) +':'+ 
 convert(varchar(10),  TotalSeconds % 60) as Seconds
from
(select
  DateDiff
(second, date,outtime )
 as TotalSeconds 
    from attendance.attn_card_register) x -- this one
Run Code Online (Sandbox Code Playgroud)

sql-server syntax alias

2
推荐指数
2
解决办法
7764
查看次数

在 WHERE 子句中引用 SELECT 子查询值

完整查询

SET @vSelect = 
    '
    SELECT                       
        T1.BranchShortName AS BranchShortName,
        (
            SELECT TT1.EmployeeName
            FROM [dbo].[Tb_OPL_Employee] AS TT1
            JOIN [dbo].[Tb_MKT_SKD] AS TT2
                ON TT2.IdTb_OPL_Branch = TT1.IdTb_OPL_Branch
            JOIN [dbo].[Tb_SYS_Approval] AS TT3
                ON TT3.TaskId = TT2.TaskId
            WHERE
                TT3.IdTb_OPL_JobTitles = TT1.IdTb_OPL_JobTitles
                AND TT3.IdTb_OPL_JobTitles = 
                (
                    SELECT MAX(TTT3.IdTb_OPL_JobTitles) 
                    FROM [dbo].[Tb_SYS_Approval] AS TTT3 
                    WHERE 
                        TTT3.IsPassed = 1 
                        AND TTT3.ApprovalLevelCode = ''Approve'' 
                        AND TTT3.TaskId =TT2.TaskId
                )
                AND TT3.IdTb_OPL_Branch = TT1.IdTb_OPL_Branch
                AND TT2.IdTb_MKT_SKD = T2.IdTb_MKT_SKD
        ) AS LastApproval,
        (
            SELECT TT1.EmployeeName 
            FROM [dbo].[Tb_OPL_Employee] AS TT1
            JOIN [dbo].[Tb_MKT_SKD] AS TT2 …
Run Code Online (Sandbox Code Playgroud)

sql-server subquery sql-server-2012 alias

1
推荐指数
1
解决办法
167
查看次数

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

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

SELECT
  Col_1,
  Col_2 Col_2,
  Col_3
...
Run Code Online (Sandbox Code Playgroud)

别名Col_2实际上有什么作用,还是完全没有必要?

select alias

1
推荐指数
1
解决办法
3242
查看次数