小编Lam*_*mak的帖子

基于两个不同的表检索行

假设我在SQL Server数据库中有两个表(EmpEmpCopy),其中包含以下数据:

案例1:数据EmpEmpCopy表格如下:

Table:  Emp

Id      Name
-----------------
1      Emp_Name
2      Emp_Age
3      Emp_City
Run Code Online (Sandbox Code Playgroud)

表:EmpCopy

Id  Name
--------------------
1   Emp_Name
2   Emp_Age
Run Code Online (Sandbox Code Playgroud)

案例2:Emp和EmpCopy表中的数据如下所示:

Table:  Emp

Id      Name
--------------------
1   Emp_Name
2   Emp_Age

Table: EmpCopy

Id      Name
---------------------
1   Emp_Name
2    Emp_Age
3    Emp_City
Run Code Online (Sandbox Code Playgroud)

现在根据上面给出的情况,我想从两个表中检索记录,就像下面给出的一样

情况1:

Id  Emp_Column  EmpCopy_Column
1   Emp_Name    Emp_Name
2   Emp_Age Emp_Age
3   Emp_City    NULL
Run Code Online (Sandbox Code Playgroud)

案例2:

Id  Emp_Column  EmpCopy_Column
1   Emp_Name    Emp_Name
2   Emp_Age Emp_Age
3   NULL        Emp_City
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

如何通过多个联合语句的结果进行排序?

我不能使用公用表表达式:

WITH    cte
          AS (SELECT    [StationID],
                        [LastDistribution]
              FROM      [DB1].[dbo].[ProcessingStations]
              UNION ALL
              SELECT    [StationID],
                        [LastDistribution]
              FROM      [DB2].[dbo].[ProcessingStations]
              UNION ALL
              SELECT    [StationID],
                        [LastDistribution]
              FROM      [DB3].[dbo].[ProcessingStations]
              UNION ALL
              SELECT    [StationID],
                        [LastDistribution]
              FROM      [DB4].[dbo].[ProcessingStations]
              UNION ALL
              SELECT    [StationID],
                        [LastDistribution]
              FROM      [DB5].[dbo].[ProcessingStations]
              ORDER BY  [StationID]
              UNION ALL
              SELECT    [StationID],
                        [LastDistribution]
              FROM      [DB6].[dbo].[ProcessingStations]
              UNION ALL
              SELECT    [StationID],
                        [LastDistribution]
              FROM      [DB7].[dbo].[ProcessingStations]
              UNION ALL
              SELECT    [StationID],
                        [LastDistribution]
              FROM      [DB8].[dbo].[ProcessingStations])
    SELECT  *
    FROM    cte
    ORDER BY StationID
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

sql sql-server sql-order-by common-table-expression sql-server-2008

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

SQL Server for循环记录

在Oracle中,我们可以使用

FOR employee_rec in (select id from mytbl)
LOOP
    DBMS_OUTPUT.PUT_LINE(employee_rec.id);
END LOOP;
Run Code Online (Sandbox Code Playgroud)

在SQL Server中,我们有类似的东西吗?如果没有,如何进行此循环?

sql-server

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

如何在列侧获取行数据

我有一张员工表,工资根据年数如下:

Employee_table
-----------------------------------------------------------------------------
emp_ID -  FirstName- LstName   salary  ...    year -  
001   -   xx     -     yy   -   03212         2000       
001   -   xx     -     yy   -   04212         2001        
002   -   xxx     -    yyy  -   03425         2000         
002   -   xxx     -    yyy  -   04425         2001          
003   -   xxxx    -    yyyy  -  03429         2000         
003   -   xxxx   -     yyyy  -  04429         2001         
------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我想写一个查询,它会在列方面给我一年的员工数据:

tblResults
---------------------------------------------------------------------
emp_ID   2000       2001          ....     ....            
---------------------------------------------------------------------
01        03212     04212   
02        03425   - 04425    
03        03429     04429   
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008

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

从表中检索列,然后将其插入新表

我刚刚在SQL 2008中创建了一个表.这个表有两列.

CREATE TABLE [dbo].[MyTable]
(
[pkey] [bigint] not null,
[Number] [int]  not null
)
Run Code Online (Sandbox Code Playgroud)

现在我想在其中插入值.第一列可以从另一个表中获得dbo.OldTable.它有很多记录,我不想手动插入数据.第二列Number可以是0每行中的一列.做这个的最好方式是什么?

sql t-sql sql-server sql-server-2008

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

你如何在SQL中选择一个确切的日期?

select o.customerid, c.customername, o.orderdate
from orders as o, customers as c
where o.orderdate='1997-08-26';
Run Code Online (Sandbox Code Playgroud)

使用示例northwind db,我无法弄清楚出了什么问题?我使用了样本表中使用的日期格式.

我正在尝试提取26日下订单的任何人的ID和姓名.

sql sql-server date

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

多个SQL WITH子句 - 为什么不呢?

我有2个单独的查询.

查询1:

With A as (Select P,Q,R from X union all Select P,Q,R from Y)
Insert into File1
Select * from A
Run Code Online (Sandbox Code Playgroud)

查询2:

With B as (Select S,T,U from Z)
Insert into File2
Select * from B
Run Code Online (Sandbox Code Playgroud)

我意识到,从逻辑上讲,我总是需要一起生成File1和File2,所以我决定将2个查询合并为一个存储过程.但是,当我尝试这样做时,我遇到了这个问题,它只能在查询中有一个WITH子句.

所以,我在SO中发现了一些问题,其中人们解释说你只是使用逗号并且有一个单独的WITH子句(尽管没有WITH)但是这对我的例子来说不适用于任何形式.

这不是问题 - 我很容易通过使用临时表等解决它.但我真的很感兴趣为什么我不能在同一个Proc中有两个完全不相关的WITH子句?

有人可以解释一下吗?

sql t-sql sql-server

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