我有一个看起来像这样的表:
col1 col2 col3
------ ----- -----
A 1 trout
A 2 trout
B 1 bass
C 1 carp
C 2 tuna
D 1 salmon
Run Code Online (Sandbox Code Playgroud)
我真的只想选择col2最大值的行.
我想要生成的查询将返回以下内容:
col1 col2 col3
------ ----- -----
A 2 trout
B 1 bass
C 2 tuna
D 1 salmon
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
select col1, max (col2) as mCol2, col3
from mytable
group by col1, col2
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我得到:
col1 Mcol2 col3
------ ----- -----
A 2 trout
B 1 bass
C 1 carp
C 2 tuna
D 1 …Run Code Online (Sandbox Code Playgroud) 当故意导致故障时,Catch在存储过程中失败.
我试图通过在创建存储过程后更改列名来测试我的存储过程中的catch部分.但是捕获永远不会被执行,并且它会在错误的行处失败.关于我可能做错的任何想法?
重现步骤:
* Create Table ErrorTest
CREATE TABLE [dbo].[ErrorTest](
[ErrorTest] [varchar](50) NULL
) ON [PRIMARY]
* Create Stored Procedure TestError
SET NOCOUNT ON;
DECLARE @EmailMessage AS VARCHAR(5000)
BEGIN
BEGIN TRY
SELECT ErrorTest FROM ErrorTest
END TRY
BEGIN CATCH
declare @error int, @message varchar(4000), @xstate int;
select @error = ERROR_NUMBER()
, @message = ERROR_MESSAGE()
, @xstate = XACT_STATE();
SET @EmailMessage = 'Failure ' + CHAR(13) + 'Error Code: '+ CAST(@error AS VARCHAR) + CHAR(13) + @message
EXEC [leads].[usp_SendEmail]
@Mysubject = …Run Code Online (Sandbox Code Playgroud) 如果我有两个整数值表,如:
Table:Distance
1
2
3
4
5
Table:Time
2
4
6
8
10
Run Code Online (Sandbox Code Playgroud)
如何划分表格:表格距离:实现时间
Result:
0.5
0.5
0.5
0.5
0.5
Run Code Online (Sandbox Code Playgroud) 如何使用单个语句在 sql 表中插入多个值。在 sql server 2008 中做
我有这个选择:
SELECT pts_name
FROM products_tecspecs
WHERE pts_id IN ( 5275, 21, 5276, 5277,
5278, 49, 5279 )
ORDER BY FIELD (pts_id, 5275, 21, 5276, 5277, 5278, 49, 5279)
Run Code Online (Sandbox Code Playgroud)
我试图得到结果并按照我想要的方式订购.我找到了这个答案但得到了这个错误:#1305 - FUNCTION database_name.FIELD不存在
我试图用IN(这是有效的)得到具体结果,但按我想要的方式排序.
帮助你成为一个人.
假设我在列上有一个带有聚簇索引的下表(例如,a)
CREATE TABLE Tmp
(
a int,
constraint pk_a primary key clustered (a)
)
Run Code Online (Sandbox Code Playgroud)
然后,让我们假设我有两组非常大的行要插入到表中.
你认为在第一组和第二组中插入值之间会有性能差异吗?如果是这样,为什么?
谢谢
sql-server clustered-index database-performance insert-statement database-fragmentation
创建连接2个表的查询时.我想到了两种可能的方法来编写查询.下面是一个简化的例子.你能告诉我哪个会更快吗?
SELECT t1.a,
t2.a
FROM table1 t1
JOIN table2 t2
ON t1.b = t2.b
WHERE t2.c = 'test'
Run Code Online (Sandbox Code Playgroud)
要么
SELECT t1.a,
t2.a
FROM table1 t1
JOIN (SELECT a, b
FROM table2
WHERE c = 'test') t2
ON t1.b = t2.b
Run Code Online (Sandbox Code Playgroud) 我想在删除的记录上设置日期/时间戳,但我得到了奇怪的结果.当此触发器触发时,它将日期设置为1906!
我已尝试GETDATE()在查询中使用该函数,UPDATE并在表属性上使用默认值.它适用于我手动输入到DELETED_RECORDS表中的记录,但由于实际删除而移入的任何记录都有1906日期.我不确定发生了什么
ALTER TRIGGER [dbo].[Backup_TT_Deleted_Records]
ON [dbo].[tblLLS_TT]
FOR DELETE
AS
BEGIN
INSERT INTO dbo.tblLLS_TT_DELETED_RECORDS
SELECT *
FROM Deleted
UPDATE dbo.tblLLS_TT_DELETED_RECORDS
SET Deleted_DTTM = GETDATE()
WHERE dbo.tblLLS_TT_DELETED_RECORDS.Deleted_DTTM IS NULL
END
Run Code Online (Sandbox Code Playgroud)
还有上面的触发器,如果我在DELETED_RECORDS表上输入一个记录而留下Delete_DTTMnull然后删除一个记录,导致触发器触发它将正确填写该记录,但是进入DELETED_RECORDS表中的记录将再次具有日期我还注意到每条记录的日期增加一天.
知道这里可能会发生什么吗?
您希望我执行的任何其他测试让我知道,我会发布结果.这个很奇怪.谢谢!
想知道是否有人可能知道一个小的SQL脚本的技巧.
http://sqlfiddle.com/#!3/09638/3
我期待只返回有手动变速器的行并且是福特制造的.如果不存在任何行,则返回所有福特制造的车辆.我目前正在使用IF EXIST条件.我考虑使用临时表来存储第一组数据,然后查看表的rowcount()(插入行== 0)以查看是否需要插入更多数据.可能没有其他方法可以做到这一点,然后我描述了我的两个选项.也许社区对此有一些想法.
CREATE TABLE Cars
(
Make varchar(50),
Model varchar(50),
ManualTransmission bit
);
INSERT INTO Cars
(Make, Model, ManualTransmission)
VALUES
('Ford', 'Taurus', 0),
('Ford', 'Contour', 0),
('Ford', 'Mustang', 0),
('Jeep', 'Liberty', 1),
('Jeep', 'Cherokee', 0);
Run Code Online (Sandbox Code Playgroud) 有没有办法用无关的属性补充DOM元素,或者标签是否按设计固定了某些属性?举个例子,这可能吗?
<input id="spec" type="text" preference="silly"/>
Run Code Online (Sandbox Code Playgroud)
然后使用jQuery或DOM请求访问此元素
if ($("#spec").attr("preference")=="silly") {
document.write("That input is silly")
}
Run Code Online (Sandbox Code Playgroud)
大卫
sql ×6
sql-server ×4
t-sql ×3
division ×1
dom ×1
javascript ×1
jquery ×1
math ×1
mysql ×1
oracle ×1