小编Tuf*_*and的帖子

具有空值的两行合并为没有空值的一行

我已经从表中获取了这样的记录:

Name                 Opp                     Bid                  Pro
----------------------------------------------------------------------
Admin                 2                      NULL                 NULL
Pragnya Sonal         7                      NULL                 NULL
Priyanka Debnath      17                     NULL                 NULL
Sanjeev Sasmal        2                      NULL                 NULL
Subrajeet Sahoo       1                      NULL                 NULL
Pragnya Sonal         NULL                   2                    NULL
Pragnya Sonal         NULL                   NULL                 1
Run Code Online (Sandbox Code Playgroud)

但我想以这种格式重新排序这个表:

Admin                 2                      NULL                 NULL
Pragnya Sonal         7                      2                    1
Priyanka Debnath      17                     NULL                 NULL
Sanjeev Sasmal        2                      NULL                 NULL
Subrajeet Sahoo       1                      NULL                 NULL
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题,在此先非常感谢

sql-server

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

连接两个表并在单个查询中返回数据和计数

我在 SQL Server 数据库中有两张表,一张有两列,一张有四列:

  1. tbl_email_list

    1. email_list_id int (PK)
    2. email_list_name varchar
  2. tbl_email-details

    1. email_uniq_id int (PK)
    2. email_list_id int (FK)
    3. email_address varchar
    4. blacklist bit

我想在一个应该返回的查询中检索数据

  1. 来自 tbl_email_list 的所有电子邮件列表;
  2. 与特定 email_list_id 关联的 email_address 总数;
  3. 列入白名单的电子邮件地址总数(其中黑名单=0);
  4. 列入黑名单的电子邮件地址总数(其中 blacklist=1)。

join sql-server count

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

在 SQL Server 中使用逗号分隔值连接

我有一张桌子[CourseMaster]喜欢

CourseId    CourseName
-----------------------
  01          ABC
  02          DEF
  03          GHI
  04          JKL
  05          MNO
  06          PQR
  07          STU
Run Code Online (Sandbox Code Playgroud)

我还有一张[StudentMaster]学生详细信息表,比如

ROLLNO  NAME    ADDRESS          Course
------------------------------------------------
12345   RAM     RAM ADDRESS      01,02,06                      
25695   HARI    HARI ADDRESS     02,06                         
89685   JEFF    JEFF ADDRESS     03,05,06,07                   
47896   DAISY   DAISY ADDRESS    03         
Run Code Online (Sandbox Code Playgroud)

在这里,我想使用CourseName(Not CourseId)获取学生详细信息。

如果中的值Course不是逗号分隔的,那么query使用 join 获取详细信息将非常简单。

据我所知,我可以queries为我想要的相同结果运行两个查询,一个查询用于从[StudentMaster]前端获取学生的详细信息。另一个用于仅通过相应的循环获取CourseNamefrom 。[CourseMaster]CourseId

但事实上我只想要一个结果,query而不是queries为这个小任务写两个。

我想这是100%可能的。我的预期结果如下:

ROLLNO  NAME    ADDRESS         Course …
Run Code Online (Sandbox Code Playgroud)

join sql-server

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

在 sql server 中更新大表中的行

我想更新一个有 83,423,460 行并且还在增长的大表。

以下查询需要 8 分钟才能成功执行:

 UPDATE FPP_Invoice_Revenue
 SET    Till_Prev_Inv_Amt = Till_Prev_Inv_Amt_In_USD / 0.0285714286,
        Cur_Inv_Amt = Cur_Inv_Amt_In_USD / 0.0285714286,
        YTD_Inv_Amt = YTD_Inv_Amt_In_USD / 0.0285714286
 WHERE  SOW_Number = '20014378'
Run Code Online (Sandbox Code Playgroud)

存在一个clustered index。我想在更新之前禁用该索引,并在更新后再次重建,但这也不起作用,因为重建需要很多时间。

我在某处读过这可以通过分成小部分来实现,但是如何划分上述查询?

DDL:

CREATE TABLE [dbo].[FPP_Invoice_Revenue](
[Project_Code] [varchar](10) NOT NULL,
[Project_Desc] [varchar](50) NULL,
[SOW_Number] [varchar](10) NOT NULL,
[SOW_Desc] [varchar](50) NULL,
[Invoice_No] [varchar](50) NOT NULL,
[Inv_Month] [int] NOT NULL,
[Inv_Year] [int] NOT NULL,
[Billing_Date] [smalldatetime] NULL,
[Doc_Currency] [varchar](10) NULL,
[Vertical] [varchar](255) NULL,
[Till_Prev_Inv_Amt] [numeric](24, 10) NULL,
[Cur_Inv_Amt] [numeric](24, 10) NULL, …
Run Code Online (Sandbox Code Playgroud)

performance sql-server update query-performance

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