我正在尝试使以下 SQL 语句起作用,但出现语法错误:
SELECT A.*, COUNT(B.foo)
FROM TABLE1 A
LEFT JOIN TABLE2 B ON A.PKey = B.FKey
GROUP BY A.*
Run Code Online (Sandbox Code Playgroud)
这里,A 是一个有 40 列的宽表,如果可能,我想避免在 GROUP BY 子句中列出每个列名。我有很多这样的表,我必须在这些表上运行类似的查询,所以我必须编写一个存储过程。解决这个问题的最佳方法是什么?
我正在使用 MS SQL Server 2008。
正如标题所说。我什至尝试过SELECT CONVERT(NUMERIC, 1/2)
也返回0。
我正在使用 SQL Server 2008。
我有一堆包含许多数据类型列的表ntext
。我想改变所有这些列的特定数据库的所有表格中nvarchar(max)
,由于计划弃用 (编辑:还因为我不能使用这样的列DISTINCT
,GROUP BY
等等)。是否可以在不手动为每个表使用ALTER TABLE
with 的情况下完成此ALTER COLUMN
操作?
我正在使用 MS SQL Server 2008。
假设下面的查询是合法的并且执行成功,有什么办法可以加快速度吗?
SELECT foo from T1 --T1 is a huge (>5e6 rows) table with no indexes
UNION
SELECT bar from T1
UNION
SELECT baz from T1
UNION
SELECT qux from T1
Run Code Online (Sandbox Code Playgroud)
上面显示的四列都是 type nvarchar(128)
、非稀疏和可为空的。我使用的是 SQL Server 2008。谢谢!
编辑:提供了更多信息。我无法添加索引,因为它是 Stage 表。另外,删除DISTINCT
s; 我完全忘记了这一点。
Phil:我如何将其合并为一个查询?