我有三张表:
product(pid,name,category,maker-cid)
purchase(buyer-ssn,seller-ssn,quantity,pid)
person(ssn,name,phone number,city)
Run Code Online (Sandbox Code Playgroud)
如何创建视图以仅显示所有交易中的买方名称、卖方名称和产品名称?
我需要找到所有表的名称,其中表的所有列都NULL在每一行中。
我可以NULL使用以下查询获取允许值的表:
SELECT * FROM sys.objects A
WHERE TYPE = 'U'
AND NOT EXISTS
(
SELECT 1 FROM sys.all_columns B
WHERE B.is_nullable = 0
AND A.object_id = B.object_id
)
Run Code Online (Sandbox Code Playgroud)
但是我需要找到所有行和列所在的表NULL,图中显示了一个示例:
给定字符串:
URL:'ID=1!&user=xxx&depart=21&companyId=43&workOrder=67'
Run Code Online (Sandbox Code Playgroud)
我需要得到结果:
Sno ID user depart companyId workOrder
1 1! XXX 21 43 67
Run Code Online (Sandbox Code Playgroud)
注意:该列可能会增加。
我正在使用 SQL Server 2008 R2。
我会有这样的查询:
select order_number, cart_value, is_Europe from (
select order_number, sum(product_values) as cart_value, max(is_EUR) as is_Europe
from products
group by order_number
) ordervalues
where is_Europe = 1
Run Code Online (Sandbox Code Playgroud)
注意最后一行。
假设子查询返回 30 行,其中 15 行的 is_Europe 为“1”,另一个为“0”。换句话说,花生。
但是...添加最后一行使查询从 20 秒变为 3+ 分钟并计数。将它嵌套在许多子查询中。
现在,我想我理解了 SQL 逻辑,因为它首先运行子查询,并且……一个微不足道的 where 语句……过滤 30 行……需要几纳秒。但不是与甲骨文。
这里发生了什么?
20 秒给我完整的结果集,然后只需隐藏带有“1”或“0”(无论我选择哪个)的行——这似乎是一项不可能完成的任务。
这是来自 PLSQL 的执行计划/解释计划。请注意,实际上,查询非常复杂,包含等级、组等......嵌套子查询......但是最后的事情需要 20 秒,最后的 append where 语句(即使提升了一个新的级别)打破了它......
实际上它更复杂(除了我的问题,它应该在子查询之后运行并过滤 30 行,对吗?实际上......结构类似于大陆(EUR,NA,ASIA)和一个函数调用 max (decode continent, 'EUR', 1,0) as Is_EUR group by order_id。大洲是一个例子,它实际上是一些随机维度。它确定订单是否曾经“欧洲”或其他什么。这是最快的方式包括“是”和“否”。我想我可以在这里重写查询,只是很难定期更改。为什么 Oracle 不简单地听取常识?
我想将一列从 转换varchar(50)为bigint或int。
SQL Server 2012中表有20亿条数据有什么缺点?
数据长度为 11,数据只有数字。它们被存储为 varchar。现在我必须为它创建索引。所以我想我必须转换int为创建索引。该表没有约束和索引。目前没有人使用那张桌子。例如:
data
-----
12345678911
12345678915
12345678911
12345678911
12345678914
12345678913
12345678912
Run Code Online (Sandbox Code Playgroud) 我有一个视图,它有一个聚集索引和其他非聚集索引。
SELECT即使我选择了一个索引列,一个简单的查询也不使用任何索引。
这可能是什么原因?
我在 Windows NT 6.1 (Build 7600) 上使用 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 企业版
sql-server optimization sql-server-2008-r2 materialized-view
是不是可以通过虚拟化来扩展数据库服务器,就像永远一样?我喜欢将大部分工作负载保留在数据库服务器上,因为它优化了查询,并且该架构减少了 db 服务器和 web 服务器之间的带宽使用。有什么理由我不应该在可扩展性方面这样做吗?
我需要从不同服务器但相同域上的另一个 SQL Server 查询表,但我不确定如何才能做到这一点。
我尝试了这个答案中的解决方案,但它对我不起作用,因为我得到了 SQL Server 2000(请不要讨厌 :-))。
当我尝试给出的解决方案时,我收到此错误:
第 23 行:“-”附近的语法不正确。
这是因为命令与 SQL Server 2000 不兼容。
编辑
SELECT * FROM AnotherServer.AnotherServerDatabase.Server.Table1
Run Code Online (Sandbox Code Playgroud) 我想将我的项目从 SQL Server 2008 R2 迁移到 SQL Server 2014。但我想了解数据库引擎的 T-SQL 2008 R2 和 2014 之间的区别是什么?我的意思是 SQL Server 2014 是否有任何终止语法?从 2008 年到 2012 年,FAST 的使用被禁用。
我已经设置了一个 SQL Server 代理作业来运行 SSIS 包,但它失败并出现错误:
此作业失败。作业由附表 1114 调用。
有谁知道我为什么会收到这个错误?我在网上搜索过,但找不到明确的答案。
sql-server ×6
view ×2
alter-table ×1
architecture ×1
optimization ×1
oracle ×1
scalability ×1
ssis ×1
upgrade ×1