我有以下查询,并尝试查看其编写方式是否可以获得最好的性能 UPDATE UserSession
SET
PauseSpan = CASE State WHEN 9 THEN PauseSpan + @SPAN ELSE PauseSpan END,
PauseSpanTotal = CASE State WHEN 9 THEN PauseSpanTotal + @SPAN ELSE PauseSpanTotal END,
PendSpan = CASE State WHEN 5 THEN PendSpan + @SPAN ELSE PendSpan END,
我有一个表,它是作为一个select *从视图中创建的(然后添加了一个PK)。
我希望定期使用视图中的所有数据更新表。
我认为最好的选择是使用:INSERT INTO table_a SELECT * FROM view_a ON DUPLICATE KEY UPDATE值(Non_key_col_1)、值(Non_key_col_1)、.;
由于有相当多的列,它们将来可能会改变(然后我可以重新创建表,但我希望我不必编辑周期性的插入,我想知道是否有办法避免所有列的显式规范?)
我有一个包含10000行的数据库表,我想用下面的代码选择几千个项目:
SELECT id FROM models WHERE category_id = 2
编辑:id列是表的主索引。此外,该表在category_id上还有另一个索引。
我的问题是,这会对性能产生什么影响?查询会运行得很慢吗?我是否应该考虑将我的models表拆分为单独的表(每个类别一个表)?
我正在尝试创建一个视图,在该视图中,我希望列仅为true或false。然而,似乎无论我做什么,SQL Server (2008)都认为我的位列可能以某种方式为空。
我有一个名为"Product“的表,它的"Status”列是INT, NULL。在一个视图中,我希望为Product中的每一行返回一行,如果Product.Status列等于3,则将位列设置为true,否则位字段应为false。
示例SQL
SELECT CAST( CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE