让我们考虑(x,y)一个点,然后得出radius一些值r。如果假设我有一个点(a,b),我需要检查是否(a,b)位于以 为中心的圆内(x,y)。
我怎样才能在 SQL Server 中实现这一点?
我有一个带有两个表变量的存储过程(@temp和@ temp2).
如何从两个临时表中选择值(两个表变量都包含一行)并将它们全部插入一个表中?
我尝试了以下但这没有用,我得到的错误是SELECT和INSERT语句的数量不匹配.
DECLARE @temp AS TABLE
(
colA datetime,
colB nvarchar(1000),
colC varchar(50)
)
DECLARE @temp2 AS TABLE
(
colD int
)
Run Code Online (Sandbox Code Playgroud)
...
INSERT INTO MyTable
(
col1,
col2,
col3,
col4
)
SELECT colD FROM @temp2,
colA FROM @temp,
colB FROM @temp,
colC FROM @temp
Run Code Online (Sandbox Code Playgroud)
蒂姆,非常感谢你提供的任何帮助.
sql sql-server multiple-instances multiple-tables insert-into
我是SQL Server的新手级别
我想在列中允许空值,但无法保存。

因此,我将重新创建具有相同结构的新表。
请您帮忙,以便在SQL脚本的列中允许空值。谢谢..
首先,我不知道标题是否正确,但让我告诉你我想要什么,我会按照建议更正.所以,我有2个表:
我要的是删除任何元素从table2具有ID相等subid的table1,在这里table1.name等于指定的值.
如果我有这些元素 table1
ID subid name
1 ... 1 ...... name1
2 ... 3 ...... name2
3 ... 2 ...... name1
4 ... 1 ...... name2
Run Code Online (Sandbox Code Playgroud)
和这些行 table2
ID
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
table2当name = name1时,我想用ID = subid 删除那些元素,,这意味着元素1和2.
就像是:
DELETE FROM table2
WHERE ID = (SELECT subid
FROM table1
WHERE NAME = "name1")
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我发现这个查询在sql server中返回第n个最高薪水.
WITH RESULT
AS (SELECT salary,
DENSE_RANK() OVER (ORDER BY salary DESC) AS DENSERANK
FROM Employees)
SELECT salary
FROM RESULT
WHERE RESULT.DENSERANK = 2
Run Code Online (Sandbox Code Playgroud)
当我将结果更改为结果时它正在工作,但结果不起作用...为什么?
我正在使用SQL SERVER 2012
SQL Server中有3个数据量很大的表,每个表包含大约100000行。有一个 SQL 从三个表中获取行。它的性能非常糟糕。
WITH t1 AS
(
SELECT
LeadId, dbo.get_item_id(Log) AS ItemId, DateCreated AS PriceDate
FROM
(SELECT
t.ID, t.LeadID, t.Log, t.DateCreated, f.AskingPrice
FROM
t
JOIN
f ON f.PKID = t.LeadID
WHERE
t.Log LIKE '%xxx%') temp
)
SELECT COUNT(1)
FROM t1
JOIN s ON s.ItemID = t1.ItemId
Run Code Online (Sandbox Code Playgroud)
在检查其估计执行计划时,我发现它使用了大行的嵌套循环连接。抢劫看下面的截图。图像中的顶部部分返回 124277 行,底部部分执行了 124277 次!我想这就是它这么慢的原因。
我们知道嵌套循环在处理大数据时存在很大的性能问题。如何删除它,并使用散列连接或其他连接代替?
编辑:以下是相关功能。
CREATE FUNCTION [dbo].[get_item_Id](@message VARCHAR(200))
RETURNS VARCHAR(200) AS
BEGIN
DECLARE @result VARCHAR(200),
@index int
--Sold in eBay (372827580038).
SELECT @index = PatIndex('%([0-9]%)%', @message)
IF(@index = …Run Code Online (Sandbox Code Playgroud) sql sql-server nested-loops database-performance sql-server-2012
我有两个单独的表用于类别.
一个是Categories(ID, Title, Description),另一个是SubCategories(ID, UpperID, Title, Description)
我想将类别中的记录插入到SubID = 0的SubCategories中.我看过SQL,SELECT INTO但不知道如何将它用于现有表.
如何检索该数据:
Name Title Profit
Peter CEO 2
Robert A.D 3
Michael Vice 5
Peter CEO 4
Robert Admin 5
Robert CEO 13
Adrin Promotion 8
Michael Vice 21
Peter CEO 3
Robert Admin 15
Run Code Online (Sandbox Code Playgroud)
得到这个:
Peter........4
Robert.......15
Michael......21
Adrin........8
Run Code Online (Sandbox Code Playgroud)
我想从每个名字中获得最高的利润值.如果有多个相同的名称,则始终采用最高值.
我的一个表中有42,715,078个条目,我想删除TOP 42,715,000行(我想保留78个条目).
谁知道我能做到谁?
PS:我不想删除表,只想删除表的条目.
sql-server ×8
sql ×7
geometry ×1
insert-into ×1
join ×1
math ×1
nested-loops ×1
null ×1
performance ×1
select-into ×1
sql-delete ×1
usability ×1