我有以下查询.
SELECT T2.* FROM Schema.Table1 T1 INNER JOIN
Schema.Table2 T2 ON T1.ColumnName = T2.ColumnName
WHERE T1.SomeOtherColumn = 123456
Run Code Online (Sandbox Code Playgroud)
我想从上面的查询中删除所有内容(表2中的所有内容都具有基于Inner Join和Where子句的匹配输出.我尝试了以下但不起作用.
DELETE Schema.T2.* FROM Schema.Table2 T2 INNER JOIN
Schema.Table1 T1 ON T1.ColumnName = T2.ColumnName
WHERE T1.SomeOtherColumn = 123456
Run Code Online (Sandbox Code Playgroud)
请帮忙!
编辑:
感谢你们.TIL FROM可以在子查询格式中使用两次而不使用它.:)
string excludeSubFolders = "SubFolderA, SubFolderB, SubFolderC, SubFolderABC";
DirectoryInfo directory = new DirectoryInfo(myRootFolderPath);
DirectoryInfo[] directories = directory.GetDirectories();
foreach (DirectoryInfo folder in directories)
if (folder.Name.ToString().Trim() != "SubFolderA")
{...}
Run Code Online (Sandbox Code Playgroud)
AC#newbie here.上面是我用来排除驻留在我的根文件夹(myRootFolderPath)中的"SubFolderA"的代码.我需要排除excludeSubFolders变量中列出的所有子文件夹.
谢谢
UPDATE:字符串excludeSubFolders正在通过c#代码之外的参数填充.我刚刚以c#期待的格式列出了该参数的输出.此参数今天也将具有"SubFolderA,SubFolderB,SubFolderC,SubFolderABC"值,而后天,有人会将其更改为"SubFolderA,SubFolderB,SubFolderC"并调用相同的c#代码.如何使用提供的字符串数组建议?
查询:
CREATE TABLE #Temp1 (ID int)
CREATE TABLE #Temp2 (ID int, Value varchar(10))
INSERT INTO #Temp1 (ID)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
INSERT INTO #Temp2(ID, Value)
SELECT 1,'One-One'
UNION ALL
SELECT 1,'One-Two'
UNION ALL
SELECT 1,'One-One'
UNION ALL
SELECT 2,'Two-One'
UNION ALL
SELECT 2,'Two-Two'
UNION ALL
SELECT 2,'Two-One'
SELECT T1.ID, T2.Value FROM #Temp1 T1 INNER JOIN #Temp2 T2 ON T1.ID = T2.ID
DROP TABLE #Temp1
DROP TABLE #Temp2
Run Code Online (Sandbox Code Playgroud)
电流输出:
ID Value
1 One-One
1 One-Two …Run Code Online (Sandbox Code Playgroud) 我有以下查询(样本)
SELECT *
FROM Table_1 1 INNER JOIN
Table_2 2 ON 1.C1 = 2.C1 INNER JOIN
Table_3 3 ON 2.C2 = 3.C2 INNER JOIN
Table_4 4 ON 3.C3 = 4.C3
Run Code Online (Sandbox Code Playgroud)
输出为10+列.
当我将鼠标悬停在*(在"SELECT"之后)时,我得到一个工具提示,其中包含来自这4个表的所有不同列名.
是否有一种方法可以轻松地从*切换到那些列名称,而不是在SELECT之后键入每个列名称?
谢谢
我试图获取两个DateTime值之间的DateTime差异.
查询我到目前为止,
DECLARE @start datetime = '2012-01-01 12:00:00.000'
DECLARE @end datetime = '2013-01-01 11:59:59.999'
SELECT
CONVERT(VARCHAR(5),DATEDIFF(YYYY, @start, @end))
+'-'+ CONVERT(VARCHAR(5),DATEDIFF(MONTH, @start, @end))
+'-'+ CONVERT(VARCHAR(5),DATEDIFF(SECOND, @start, @end)/86400)
+' '+ CONVERT(VARCHAR(5),DATEDIFF(SECOND, @start, @end)%86400/3600)
+':'+ CONVERT(VARCHAR(5),DATEDIFF(SECOND, @start, @end)%3600/60)
+':'+ CONVERT(VARCHAR(5),(DATEDIFF(SECOND, @start, @end)%60))
+'.'+ CONVERT(VARCHAR(5),(DATEDIFF(SECOND, @start, @end)%100))
AS [YYYY-MM-DD HH:MM:SS.MSS]
Run Code Online (Sandbox Code Playgroud)
期望的输出
0001-00-00 23:59:59.999
365 Days, 23 Hours, 59 Minutes, 59 Seconds, 999 Milliseconds
Run Code Online (Sandbox Code Playgroud)
实际产出
1-12-366 8784:0:0.0
Run Code Online (Sandbox Code Playgroud)
谢谢
代码:
DECLARE @var DATETIMEOFFSET(7) ;
-- Rounding up
SET @var = '2020-03-20 12:00:29.9999999 -08:00' ;
SELECT DATEADD ( ms, 500 - DATEPART ( ms, DATEADD ( MILLISECOND, 500, @var )), @var ) ;
-- Actual: 2020-03-20 12:00:30.0009999 -08:00
-- Expected: 2020-03-20 12:00:30.0000000 -08:00 -- Notice that precision is rounded up to '0000000'
-- Rounding down
SET @var = '2020-03-20 12:00:30.0000001 -08:00' ;
SELECT DATEADD ( ms, 500 - DATEPART ( ms, DATEADD ( MILLISECOND, 500, @var )), @var ) ; …Run Code Online (Sandbox Code Playgroud) 我有多个列,其中一个列具有varchar值,如下所示.
1
2
4
02
05
6
03
06
123
32
87
Run Code Online (Sandbox Code Playgroud)
我想找到任何具有以0开头的值的记录>删除该0(所以02> 2)并更新该字段,这样就没有以0开头的值.
我怎样才能这样做而不是手动更新前面有0的每条记录?这甚至可能吗?
谢谢
目标:以最快的方式计算变量中不同字符的数量。
DECLARE @String1 NVARCHAR(4000) = N'1A^' ; --> output = 3
DECLARE @String2 NVARCHAR(4000) = N'11' ; --> output = 1
DECLARE @String3 NVARCHAR(4000) = N'*' ; --> output = 1
DECLARE @String4 NVARCHAR(4000) = N'*A-zz' ; --> output = 4
Run Code Online (Sandbox Code Playgroud)
我发现了有关一列中不同字符,按字符分组等的一些帖子,但在这种情况下没有一个。