首先,对于模糊的主题名称感到抱歉(我想不出更好的东西)。
一个 SO 答案让我思考当我放弃=IN 时是否真的会对性能产生影响。
select 1 id, 'abc' name into #a union
select 2, 'abcd' union
select 3, 'abcde'
select * from #a where id = 1 ------ Query 1
select * from #a where id in (1)------ Query 2
Run Code Online (Sandbox Code Playgroud)
我检查了这两个查询的查询计划,发现它们对我来说是相同的(也许这个例子很简单,可能这就是原因)。
但是使用 时我是否违反了任何性能最佳实践IN?当然,这肯定会涉及一些开销,因为 anIN可以处理多个项目,甚至SELECTS. 我知道IN在功能方面提供了更多,但对于有多个记录的情况id = 1,
select * from #a where id = (SELECT id from #a where id = 1)------ Query 3
select …Run Code Online (Sandbox Code Playgroud) 我有一个CASE声明,如下所示:
SELECT CASE
WHEN <expression>> BETWEEN 0 AND 10 THEN '0-10'
WHEN <<expression>> BETWEEN 11 AND 20 THEN '11-20'
WHEN <<expression>> BETWEEN 21 AND 30 THEN '21-30'
...
Run Code Online (Sandbox Code Playgroud)
这很好用,但看起来很丑。
我想将其转换为如下所示的内容:
SELECT CASE <expression>>
WHEN BETWEEN 0 AND 10 THEN '0-10'
WHEN BETWEEN 11 AND 20 THEN '11-20'
WHEN BETWEEN 21 AND 30 THEN '21-30'
...
Run Code Online (Sandbox Code Playgroud)
显然,第二个查询看起来更好,因为我不必多次编写该复杂的表达式。但它出错了。
Incorrect syntax near the keyword 'between'.
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道我在这里做错了什么吗?
更新:
正如所指出的,我已经更改了问题中的查询以使范围具有独占性。
我在 中运行我的存储过程BI_Test_Server。
然后我使用执行它exec [dbo].[bi_resource_dimension_sp] 1,1
我成功得到了结果SQL Server management Studio。所以我创建了一个Data Flow task,放置OLE DB源、数据连接和OLE DB目的地。我编辑了 OLE DB 源并创建了一个新连接。在 OLE DB 源 SQL 命令内部:SQL 命令文本我放置了步骤 4。
在 OLE DB 源 \xe2\x80\x93 SQL 命令文本中,我放置了exec [dbo].[bi_resource_dimension_sp] 1,1从 OLE DB 源中选择所有数据的命令,然后将其连接到数据连接并将数据转储到 OLE DB 目标中。
但是,当我尝试预览结果时,出现SQL 命令未返回任何列信息的错误。
理想情况下,我需要勾选所有复选框以确保在哪一列中获取和放置数据。这就是我在第四步之后正在尝试和要做的事情。
\n\n错误提示您可以\xe2\x80\x9c如果要继续操作\xe2\x80\x9d,请选择“确定”。但是,如果我这样做,当我进入列部分(位于连接管理器和错误输出之间的左上部分)时。它\xe2\x80\x99将显示空白列。
\n\n请帮忙。
\n我有两个几乎相似的 MDX 查询,一个是我使用 .CHILDREN,另一个是 .ALLMEMBERS。第一个不返回行,第二个返回两行。请帮助我理解为什么!
查询 1
select
[Measures].[Claim As Of - Count] on 0,
[Accident Date].[Year].allmembers on 1
from [AW Cube]
where [Accident Date].[Year-Quarter-Month-Date].[Year].&[2010]
Run Code Online (Sandbox Code Playgroud)
---2行
查询 2
select
[Measures].[Claim As Of - Count] on 0,
[Accident Date].[Year].children on 1
from [AW Cube]
where [Accident Date].[Year-Quarter-Month-Date].[Year].&[2010]
Run Code Online (Sandbox Code Playgroud)
--没有行
---- 索赔截至 - 计数 -- 全部 637,350 --2010 637,350
总而言之,AccidentDate 是我的 Cube [AW Cube] 中的维度之一。Year 是自然层次结构,而 [Year-Quarter-Month-Date] 是用户定义的层次结构。[年-季-月-日]按以下方式创建:年-->月-->季度-->日期。所以'年'可以通过做[事故日期].[年-季度-月-日].[年].成员和[事故日期].[年].成员来获得。
我是 MDX 查询的新手。我正在编写一个 MDX 查询来选择跨月的度量值,我将日期范围作为过滤器放在这里只是为了限制返回的月数。例如,我想要在 2014 年 1 月 1 日到 2014 年 6 月 30 日的日期范围内每个月的销售收入。理想情况下,它应该给我六个月的销售价值,即一月、二月、三月、四月、五月和六月。但是,当我写下面的查询时,出现错误。PFB 在下面输入代码here`ow 查询。
Select NON EMPTY {[Measures].[Target Plan Value]} ON COLUMNS,
NON EMPTY {[Realization Date].[Hierarchy].[Month Year].Members} ON ROWS
From [Cube_BCG_OLAP]
( { [Realization Date].[Hierarchy].[Date].&[20140101] :
[Realization Date].[Hierarchy].[Date].&[20141231] })
Run Code Online (Sandbox Code Playgroud)
我得到的错误是Hierarchy层次结构已经出现在Axis1轴中。这里 Date 和 Month Year 属于同一个名为 的维度表Realization Date。请帮我。提前致谢。
我通常不会在执行 a 时AND在同一行中使用 an ,因为我过去遇到过问题。我宁愿不进入这个泡菜,而是将任何附加条件放在一个可靠的子句中。但是今天,出于好奇,我很想提出这个问题并一劳永逸地澄清。ONLEFT JOINWHERE
问题:LEFT JOIN当我使用“exta”条件时,到底发生了什么?为什么它的行为方式与WHERE?
示例查询
create table #a
(
id int,
name varchar(3)
)
create table #b
(
id int,
name varchar(3)
)
insert into #a
select 1, 'abc'
union
select 2, 'def'
union
select 3, 'ghi'
insert into #b
select 1, 'abc'
union
select 2, 'def'
select * from #a a left join #b b on a.id = b.id
where a.id = 3
select * …Run Code Online (Sandbox Code Playgroud) 在互联网和SO上,我可以看到找出AD中所有用户的解决方案或不属于某些特定组/组的用户.但我希望有一个不属于任何组的用户列表(仅限域用户的一部分).我有很多AD组,在脚本中硬编码是不切实际的.我也知道CSVDE工具,并且已经能够从中提取数据,但遗憾的是输出非常复杂且不方便用户使用.我要找的是在两列中提取这些信息 - User|MemberOf在一个平面文件中.PowerShell解决方案更受欢迎,但我对任何解决方案都持开放态度,只要它不涉及安装任何第三方软件,因为我的组织不允许这样做.
可能它是重复的,但我找不到解决方案.
需求:
我有以下字符串:
Heelloo
Heeelloo
Heeeelloo
Heeeeeelloo
Heeeeeeeelloo
.
.
.
Heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeelloo
Run Code Online (Sandbox Code Playgroud)
预期产量: Hello
在SQL中实现这一目标的最佳方法是什么?
我正在使用的版本:
Microsoft SQL Server 2012 - 10.0.7365.0 (X64) Jul 28 2015 00:39:54 Copyright (c)
Microsoft Corporation Parallel Data Warehouse (64-bit) on Windows NT 6.2 <X64>
(Build 9200: )
Run Code Online (Sandbox Code Playgroud) sql-server ×5
sql ×4
mdx ×2
date ×1
extract ×1
in-clause ×1
optimization ×1
powershell ×1
ssas ×1
ssas-2012 ×1
ssis ×1
t-sql ×1