每次我创建查询并运行它以创建报告时,我都会将查询保存在我的 Projects 文件夹中,以防将来我必须重新运行查询或者由于任何原因必须修改它,但似乎出于某种原因我在六月中旬的某个时候运行的查询没有保存。我需要查看我在查询中使用的代码,因为我正在查看报告,但有些数字看起来不正确,因此我需要检查查询以查看代码中是否存在错误编写的内容。
无论如何,在某些日志中,我是否可以在 6 月份看到我运行(但未保存)的查询的代码?如果可以的话,这将是惊人的。谢谢!
我正在将不同来源的平面文件导入 SQL Server 中的表中。我正在使用提取中的字段组合创建一个复合主键,这些字段将为我的每一行提供一个唯一的键。
我现在的做法是从 1 个字段开始,然后继续连接字段,直到找到对所有记录都是唯一的键。这可能有点耗时,或者我最终可能会连接比我真正需要的更多的列以获得唯一键。
是否有某种 SQL 脚本可以在表上运行,它会给我最少数量的字段(名称),我需要连接以获得唯一键?因此,如果表中有 1 个字段对所有记录都是唯一的,则将返回该 1 个字段名称。如果我需要连接 [memberid]、[claimid] 和 [date of service] 以获得唯一键,那么这 3 个字段名称将是脚本的结果。
我有 2 个不同的查询来识别重复(如下)。两个查询之间的唯一区别是一个使用 CTE,另一个使用 #Temp 表。
有谁知道为什么 CTE 比 #Temp 表快得多(0:20 秒 VS. 1:22)?
我宁愿使用 CTE,但我需要使用 CTE 运行 2 个 STATEMENTS(从 CTE 删除,然后从 CTE 插入表),但 SQL Server 只允许您在 CTE 上编写一个 STATEMENT。
查询 1:
WITH DUPS AS(
Id,
Column1,
Column2,
Column3,
RN = ROW_NUMBER()OVER(PARTITION BY ID ORDER BY id)
FROM mytable
)
Select top 1 * FROM DUPS WHERE RN > 1
Run Code Online (Sandbox Code Playgroud)
查询 2:
SELECT
Id,
Column1,
Column2,
Column3,
RN = ROW_NUMBER()OVER(PARTITION BY ID ORDER BY id)
INTO #DUPS
FROM mytable …Run Code Online (Sandbox Code Playgroud) 下面的代码不应该返回0吗?
SELECT REPLACE(ISNULL('',0),'',0)
Run Code Online (Sandbox Code Playgroud)
这也不返回0....
SELECT REPLACE('','',0)
Run Code Online (Sandbox Code Playgroud)
我在包含数值的表中有一个 nvarchar 字段,但有时为空(不为空)。
我有一个查询,检查该字段是否<另一个字段中的数字,但我得到
“将数据类型 nvarchar 转换为数字时出错。”
如果该字段为空,则会出错。我试图在查询执行期间将空白值 ('') 转换为零,这样我就不会收到转换错误,但我刚刚意识到
SELECT REPLACE('','',0)
Run Code Online (Sandbox Code Playgroud)
不会将空白字段转换为 0。
我尝试使用下面的代码来尝试避免转换错误,但是当阈值字段为空时它没有像我预期的那样评估为 0:
SELECT CAST(REPLACE(ISNULL(Threshold,0),'',0) as decimal(4,2))
Run Code Online (Sandbox Code Playgroud)
当阈值字段为空时,如何让代码评估为 0。
我猜我可以写一个 if 或 case 语句来跳过空白 ('') 值阈值,但我认为必须有一种方法可以全部内联,就像我试图用上面的代码做的那样.
我不确定为什么下面的连接查询没有返回任何结果。
SELECT * FROM table1 JOIN table2 ON table1.fieldid = table2.idfield
Run Code Online (Sandbox Code Playgroud)
以下 2 个查询返回结果,所以当我可以清楚地看到两个表具有共同的连接字段值时,我不确定为什么连接不会选择任何行。
SELECT * FROM table1 WHERE fieldid = 900399530 (returns rows)
SELECT * FROM table2 WHERE idfield = 900399530 (returns rows)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
以下是 2 列的数据类型:
fieldid [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
idfield [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL