小编Tab*_*man的帖子

如何查询所有数据库中的表中的列

我希望查询表存在的每个数据库中的表中的列.到目前为止,我有以下内容,但不知道从哪里开始:

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服务器上每个数据库中指定表中的特定列的所有列数据.提前谢谢你的帮助.

sql t-sql sql-server

2
推荐指数
1
解决办法
348
查看次数

将 GETDATE() 转换为 YYYYMMDDhhmmss 作为派生列

我试图将 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)

任何线索我做错了什么?

sql-server ssis

1
推荐指数
1
解决办法
1万
查看次数

SQL:获取每个唯一ID的最后一行

我有一张桌子.我想获得每个独特的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)

sql sql-server greatest-n-per-group

1
推荐指数
1
解决办法
606
查看次数

如何根据计算结果过滤行

以下代码创建了一个新列"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 t-sql sql-server

1
推荐指数
1
解决办法
31
查看次数

SQL Server Management Studio - 只执行一个查询,而不是整个脚本?

这肯定是以前被问过的,对不起.但是在SQL Server Management Studio v17.4中,如果只是按F5,它将执行整个脚本.

如何让它只执行当前行/语句?否则我必须强调整个事情.我每天这么做很多次都很累.

谢谢!

sql sql-server ssms

1
推荐指数
1
解决办法
642
查看次数

sql-server检测父子层次结构中的父项

我正在我的项目中实现一个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 | …

sql sql-server

1
推荐指数
1
解决办法
114
查看次数

如果在SQL触发器

我正在尝试使用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)

sql triggers if-statement

0
推荐指数
1
解决办法
1万
查看次数

在 SQL 中保存变量

有没有办法让我保存我的价值观 SELECT语句返回到 SQL 中的变量中?

这就是我想要做的,首先我SELECT想检查我想检查的所有列,所以在这种情况下ItemNamesItemCategory美国的项目。

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)

谢谢你的问候

mysql

0
推荐指数
1
解决办法
1万
查看次数

有条件地选择常量而不是列值

我试图从SQL Server中的旅行表中选择合同,车辆和收入值,而不选择特定合同和车辆的收入.例如:

    SELECT contract, vehicle, revenue FROM trips
Run Code Online (Sandbox Code Playgroud)

但收入应该显示0合同的位置John Doe,同时卡车是"卡车1",因为这次旅行的收入需要显示在其他地方.

sql sql-server

0
推荐指数
1
解决办法
350
查看次数

对表B中的每一行选择表A中的每一行

我有两个表,客户和用户.我需要创建一个显示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循环,但我正在努力弄清楚如何通过每个客户端编号进行逻辑循环,直到所有用户编号都被添加,等等.

sql sql-server

0
推荐指数
1
解决办法
45
查看次数