我希望查询表存在的每个数据库中的表中的列.到目前为止,我有以下内容,但不知道从哪里开始:
DECLARE @tblName VARCHAR(5000) = 'myTable'
SELECT name
FROM sys.databases
WHERE CASE
WHEN state_desc = 'ONLINE'
THEN OBJECT_ID(QUOTENAME(name) + '.[dbo].['+@tblName+']','U')
END IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
到目前为止,我可以使用我正在查找的表返回所有数据库,但我希望SQL服务器上每个数据库中指定表中的特定列的所有列数据.提前谢谢你的帮助.
我试图将 getdate 转换为 YYYYMMDDHHmmss 格式的字符串,但运气不佳。我需要在 SSIS 中作为派生列执行此操作。
我试过使用 Datepart,但它不起作用。
Datepart("YYYY",(GETDATE())) & datepart("MM",MONTH(GETDATE())) & DATEPART("DD",(GETDATE())) & DATEPART("HH",(GETDATE()) & DATEPART("MM",(GETDATE())) & DATEPART("SS",(GETDATE()))
Run Code Online (Sandbox Code Playgroud)
任何线索我做错了什么?
我有一张桌子.我想获得每个独特的CoatingChambersID的最后一行.有24个独特的腔室,最后一行表示腔室处于最后状态的时间.
我可以得到一个如此独特的列表:
SELECT distinct CoatingChambersID, MAX(LastDT) as LastDT
FROM [REO].[dbo].[CoatingChamberStateLogs]
group by CoatingChambersID
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何将其加入到原始表中.
在此先感谢您的帮助!
CoatingChamberStateLogsID CoatingChambersID StartDT LastDT IntervalMin CoatingChamberStatesID
1001712 1003 2017-01-24 23:09:29.4632108 2017-01-25 03:04:32.6758500 235.053543986667 1007
1001713 1006 2017-01-24 23:09:29.4632108 2017-01-25 00:30:30.8478433 81.0230772083333 1007
1001714 1015 2017-01-24 23:09:29.4632108 2017-01-25 04:21:33.7601011 312.071614838333 1007
1001715 1024 2017-01-24 23:09:29.4632108 2017-01-31 04:43:21.5643016 8973.86835151333 1001
1001716 1016 2017-01-24 23:09:29.4632108 2017-01-25 00:01:30.4200122 52.01594669 1006
1001717 1017 2017-01-24 23:09:29.4632108 2017-01-24 23:15:29.8261612 6.00604917333333 1006
1001718 1018 2017-01-24 23:09:29.4632108 2017-01-26 01:42:49.4040548 1593.3323474 1006 0
1001719 1019 …
Run Code Online (Sandbox Code Playgroud) 以下代码创建了一个新列"ZScore"
SELECT [Cardholder Name], [Debit Amount], ([Debit Amount] - AVG([Debit Amount]) OVER ()) / (STDEV([Debit Amount]) OVER ()) as [ZScore]
FROM ['Card Data']
ORDER BY [ZScore] DESC;
Run Code Online (Sandbox Code Playgroud)
我想要做的只是显示ZScore> = 3的行.我尝试了以下但是一切似乎都抛出错误.
SELECT [Cardholder Name], [Debit Amount], ([Debit Amount] - AVG([Debit Amount]) OVER ()) / (STDEV([Debit Amount]) OVER ()) as [ZScore]
FROM ['PCard Output']
HAVING (([Debit Amount] - AVG([Debit Amount]) OVER ()) / (STDEV([Debit Amount]) OVER ())) > 3
ORDER BY [ZScore] DESC;
Run Code Online (Sandbox Code Playgroud)
仅显示计算出的z得分> = 3的行的正确方法是什么?
这肯定是以前被问过的,对不起.但是在SQL Server Management Studio v17.4中,如果只是按F5,它将执行整个脚本.
如何让它只执行当前行/语句?否则我必须强调整个事情.我每天这么做很多次都很累.
谢谢!
我正在我的项目中实现一个recyclebin函数.如果删除整个文件夹,我想只看到文件夹名称,而不是所有子文件(内容).以下是它的外观:
+----+----------+---------------+
| ID | ParentID | Name |
+----+----------+---------------+
| 3 | 1 | Css |
+----+----------+---------------+
| 4 | 8 | New File.txt |
+----+----------+---------------+
| 6 | 10 | Scripts.js |
+----+----------+---------------+
| 7 | 3 | Styles.css |
+----+----------+---------------+
| 8 | 3 | Bootstrap.css |
+----+----------+---------------+
我想要的唯一输出是第3行和第6行.
如您所见,父子关系中没有逻辑模式,因此我很难弄清楚如何不显示子行.
另一种选择可能是标记行,然后我可以稍后对输出进行排序.例如,像这样:
+----+----------+---------------+--------+
| ID | ParentID | Name | Label |
+----+----------+---------------+--------+
| 3 | 1 | Css | parent |
+----+----------+---------------+--------+
| 4 | 8 | …
我正在尝试使用if else语句在插入触发器之后创建。我可以在没有if else的情况下执行此操作,但是会出错。因此,在“预订”表中,有一个列customer_id。有一个表客户,我在其中有一列“类型”。根据此列中的值,我想在booking_status表中添加一行,但是语法错误。我只是学习sql,请提供帮助。
AFTER INSERT ON booking
FOR EACH ROW
IF (SELECT type FROM customer WHERE ID=customer_id) = 'not trust'
BEGIN
INSERT INTO booking_status (id, status_name, booking_id) VALUES(NEW.booking_number, 'Checking', NEW.booking_number)
END
ELSE
INSERT INTO booking_status (id, status_name, booking_id) VALUES(NEW.booking_number, 'Approved', NEW.booking_number);
Run Code Online (Sandbox Code Playgroud) 有没有办法让我保存我的价值观 SELECT
语句返回到 SQL 中的变量中?
这就是我想要做的,首先我SELECT
想检查我想检查的所有列,所以在这种情况下ItemNames
是ItemCategory
美国的项目。
SELECT `ItemName` where `ItemCategory´= 'US'
Run Code Online (Sandbox Code Playgroud)
然后我想将ItemName
上面的语句保存到 SQL 中的一个变量中,以便稍后在同一个查询中使用它。像这样:
SELECT `DatabaseID` where `Project` NOT LIKE `myVariable`
Run Code Online (Sandbox Code Playgroud)
谢谢你的问候
我试图从SQL Server中的旅行表中选择合同,车辆和收入值,而不选择特定合同和车辆的收入.例如:
SELECT contract, vehicle, revenue FROM trips
Run Code Online (Sandbox Code Playgroud)
但收入应该显示0
合同的位置John Doe
,同时卡车是"卡车1",因为这次旅行的收入需要显示在其他地方.
我有两个表,客户和用户.我需要创建一个显示ClientNumber和UserNumber的输出,但需要为每个客户端编号列出客户端编号.
目前的表格:
客户表:
CustomerNumber CustomerName
1000 Test 1
2000 Test 2
3000 Test 3
Run Code Online (Sandbox Code Playgroud)
用户表:
UserName UserNumber
bgrte 123
hfysd 547
usdfs 654
Run Code Online (Sandbox Code Playgroud)
我的输出看起来像:
ClientNumber User Number
1000 123
1000 547
1000 654
2000 123
2000 547
2000 654
3000 123
3000 547
3000 654
Run Code Online (Sandbox Code Playgroud)
我假设我需要一个while循环,但我正在努力弄清楚如何通过每个客户端编号进行逻辑循环,直到所有用户编号都被添加,等等.