小编bms*_*dev的帖子

对SQL Server中的INSERT语句中指定的列忽略表别名

我在其中一个博客中看到了上述问题.但无法在任何地方找到答案.也许这里的SQL Server专家可以帮助我.

CREATE TABLE #DEMO (VALUE1 INT, VALUE2 VARCHAR(10))

CREATE TABLE #DEMO1 (VALUE1 INT, VALUE2 VARCHAR(10))

INSERT INTO #DEMO VALUES (1, '10')

INSERT INTO #DEMO1 (a.a.a.value1,b.b.b.value2)
    SELECT
        Value1, Value2
    FROM #DEMO
Run Code Online (Sandbox Code Playgroud)

如果看到insert语句,我在插入的列中指定了一些别名.令我惊讶的是,SQL Server在执行语句时没有抛出任何错误.这背后的原因是什么?有人可以帮忙吗?

sql t-sql sql-server

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

将默认值传递给Table Valued参数 - SQL Server

我在一个存储过程中使用表值参数.这是我使用的语法:

@districtlist NumericList readonly
Run Code Online (Sandbox Code Playgroud)

(NumericList是用户定义的表类型).

但是,作为一项要求,我需要将默认值传递给此表值参数.

@districtlist NumericList = 0 readonly
Run Code Online (Sandbox Code Playgroud)

但是上面的代码会引发语法错误.是否可以将默认值传递给表值参数?有人可以帮我吗?

sql t-sql sql-server

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

自动增加sql-server中的非标识列

我们Identity Column的数据库中有非特定值.我们有如下要求,

每当记录insert到该列时,值应增加1.

如何处理这个sql server

谢谢您的帮助.

sql t-sql sql-server sql-server-2012

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

如何在Power BI中将Integer转换为Text值

我正在创建一个calculated column现有的power BI report.在calculated column符连接integertext列.我试过下面的查询,给我一个语法错误,

= Number.ToText(table1.[RegionID]) & " " &  table1.[RegionName]
Run Code Online (Sandbox Code Playgroud)

我尝试了其他一些不成功的转换方法.有人请指导我如何在power bi中实现上述场景

sql m dax powerbi

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

表变量在SQL Server中可以具有的最大记录数

是否有限制来限制表变量中的记录数量?如果是,表变量可以保存的最大数量是多少?我必须编写一个存储过程来处理大约1000条记录.我需要使用表变量或临时表吗?

sql t-sql sql-server

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

使用基于集合的方法获取给定日期范围之间的特定日期

为了得到所有Sunday datesSaturday dates 之间给定date ranges我使用iterative solution如下,

create  TABLE #Dayweeks (id int IDENTITY(1,1),StartWeek DATETIME, EndWeek DATETIME)

DECLARE @wkstartdate datetime = '2015-12-06',
        @wkenddate   datetime = '2016-04-05'



WHILE (@wkstartdate <= @wkenddate)
    BEGIN
         INSERT INTO #Dayweeks
         (
         StartWeek, EndWeek
         )
         SELECT
         @wkstartdate, DATEADD(wk,DATEDIFF(wk,0,@wkstartdate),6)-1

         SELECT @wkstartdate = DATEADD(dd,7,@wkstartdate)
    END
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用它set based approach.有没有办法通过使用获得上述结果set based approach

我使用迭代解得到的输出如下.

在此输入图像描述

sql t-sql sql-server

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

是否可以将 rdl 文件导入 Power BI

现在我们正在将我们中的一些转换ssrs reports为 Power BI。我想知道是否有任何选项可以将整个报表结构(rdl files)导入 Power BI。请帮我解决这个问题

sql reporting-services powerbi

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

根据表格数据查找每个部门的第3个最高工资

我需要3rd maximum salary为a中的每个部门找到一个员工table.如果不3rd maximum salary存在则显示2nd maximum salary.如果不2nd maximum salary存在则找到highest salary.如何实现这个结果sql-server

table以下结构中给出

create table employee1(empid int, empname varchar(10), deptid int, salary money)

insert into employee1
select 1,'a',1, 1000
union
select 1,'b',1, 1200 
union
select 1,'c',1, 1500 
union
select 1,'c',1, 15700 
union
select 1,'d',2, 1000 
union
select 1,'e',2, 1200 
union
select 1,'g',3, 1500 
Run Code Online (Sandbox Code Playgroud)

我尝试了使用row_number函数获得每个类别的最高工资的常用方法.

;with cte
as
( 
select ROW_NUMBER( ) over( partition by …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

从Sql server中的where子句中排除函数

我在下面query的一个用过stored procedures

SELECT officeid, rdate
FROM dbo.mytable
Where OfficeID   = OfficeID
  AND YEAR(h.rDate) = @year
  AND MONTH(h.rDate) BETWEEN 1 AND 4
Run Code Online (Sandbox Code Playgroud)

上述查询无法成为SARG ( Search Argument)由于功能的使用MONTHYEAR导致的Where clause.这导致执行Index scan期间stored procedure.有没有办法重写上面的查询来处理上述逻辑(没有function)

(PS: rdatedatetimedatetype,@yearINT数据类型)

sql t-sql sql-server stored-procedures sql-server-2012

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

OUTER在没有子查询的情况下应用

我通过文章去约CROSS APPLY,并OUTER APPLY在SQL Server中.以下表格用于说明两者.

员工表:

EmployeeID  FirstName   LastName    DepartmentID

1           Orlando     Gee         1
2           Keith       Harris      2
3           Donna       Carreras    3
4           Janet       Gates       3
Run Code Online (Sandbox Code Playgroud)

部门表:

DepartmentID    Name
1               Engineering
2               Administration
3               Sales
4               Marketing
5               Finance
Run Code Online (Sandbox Code Playgroud)

我明白这OUTER APPLY是类似于LEFT OUTER JOIN.但当我OUTER APPLY在表之间应用如下,

select * from Department e
outer apply
Employee d
where d.DepartmentID = e.DepartmentID
Run Code Online (Sandbox Code Playgroud)

我得到了以下结果(与INNER JOIN结果相同)

DepartmentID    Name           EmployeeID   FirstName   LastName    DepartmentID
1               Engineering     1           Orlando …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server join sql-server-2012 outer-apply

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