|
Question 1.
用select top 10 columnname from table 会return 最前十个row,
那,要怎样才能select 第11 到 第20 row 呢?
(Solved)
[ 本帖最后由 tensaix2j 于 3-11-2006 12:57 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 3-8-2006 11:30 AM
|
显示全部楼层
看来你好像用MSSQL SERVER
如果用MYSQL,你可以用SELECT * FROM XXX LIMIT 11,20,但mssql没有这功能 |
|
|
|
|
|
|
|
楼主 |
发表于 3-8-2006 12:17 PM
|
显示全部楼层
Question 2.
该怎么解决。。当top n, n 不能被variable @i代替。。
declare @i int;
declare @rowcount int;
declare @recipe varchar(50);
set @i=1;
select * from tblrecipe;
set @rowcount=@@rowcount;
select top @i @recipe=recipe from tblrecipe;
(solved)
[ 本帖最后由 tensaix2j 于 30-8-2006 11:52 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 3-8-2006 01:27 PM
|
显示全部楼层
我在VB,ASP,ASPNET是用 SELECT "& SQL &" FROM XXX
在JSP里SELECT "+ SQL +" FROM XXX
在PHP里SELECT "。$SQL。" FROM XXX
供参考 |
|
|
|
|
|
|
|
楼主 |
发表于 3-8-2006 01:45 PM
|
显示全部楼层
问题是现在不碰任何programming language,除了sql本身的情况下来做。。。 |
|
|
|
|
|
|
|
发表于 3-8-2006 02:12 PM
|
显示全部楼层
问题是你没有说你用什么DATABASE SERVER,那要如何帮你?
MSSQL和MYSQL在一些SQL STATEMENT上会有些不同
上面我写了,MYSQL可以用LIMIT 11,20
但MSSQL里没有LIMIT这功能
TOP也不能用TOP 11,20
除非你写store procedure
[ 本帖最后由 max5007 于 3-8-2006 02:13 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 3-8-2006 03:49 PM
|
显示全部楼层
第一个问题,赞时算是解决了。。
第二个问题比较重要。。
select top n * from tblXXX
就是那个 n 不能换去variable来select..。。
(Solved)
[ 本帖最后由 tensaix2j 于 4-9-2006 10:53 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 3-8-2006 04:45 PM
|
显示全部楼层
STORE PROCEDURE 可以这样用啊。。我也是酱用。。
给你一个EXAMPLE
CREATE FUNCTION [dbo].[ufn_GenerateIntegers] ( @MinValue INT, @MaxValue INT )
RETURNS @Integers TABLE ( [IntValue] INT )
AS
BEGIN
WHILE @MinValue <= @MaxValue
BEGIN
INSERT INTO @Integers ( [IntValue] ) VALUES ( @MinValue )
SET @MinValue = @MinValue + 1
END
RETURN
END
GO
SET @MinValue = @MinValue + 1
END
RETURN
END
GO
这里也有example
http://www.asp101.com/samples/storedprocs.asp
[ 本帖最后由 max5007 于 3-8-2006 04:46 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 3-8-2006 09:07 PM
|
显示全部楼层
Select top 10 * from tablexxx where key_column not in (select top 10 key_column from tablexxx) |
|
|
|
|
|
|
|
发表于 4-8-2006 01:32 AM
|
显示全部楼层
原帖由 tensaix2j 于 3-8-2006 03:49 PM 发表
老大,我不就正在写stored proc 咯。。
第一个问题,赞时算是解决了。。
第二个问题比较重要。。
select top n * from tblXXX
就是那个 n 不能换去variable来select..。。
这个应该是你所要的...
CREATE PROCEDURE [SHOW_COUNT]
@TOTALCOUNT INT
AS
EXEC ('SELECT TOP ' + @TOTALCOUNT + ' * FROM tblXXX')
GO |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 09:27 PM
|
显示全部楼层
原来如此,感激不尽 max and goatstudio 大大 |
|
|
|
|
|
|
|
发表于 28-8-2006 03:48 PM
|
显示全部楼层
原帖由 神仙祖宗 于 3-8-2006 09:07 PM 发表
Select top 10 * from tablexxx where key_column not in (select top 10 key_column from tablexxx)
這個很有玄機,而且很厲害……
這樣都可以……哈哈……我學到新東西了,謝謝你,神仙祖宗 |
|
|
|
|
|
|
|
发表于 28-8-2006 04:56 PM
|
显示全部楼层
原帖由 b4dboyz 于 28-8-2006 03:48 PM 发表
這個很有玄機,而且很厲害……
這樣都可以……哈哈……我學到新東西了,謝謝你,神仙祖宗
这是sub query的运用。。 |
|
|
|
|
|
|
|
楼主 |
发表于 30-8-2006 11:50 AM
|
显示全部楼层
Question 3.
请教SQL
我有一个table..
yymmdd errordesc errortype errorcount
====== ========= ========= ==========
2005/9/1 blah1 1 2
2005/9/1 blah3 3 3
2005/9/1 blah4 4 1
2005/9/2 blah2 2 2
2005/9/2 blah3 3 1
... .. .. ..
请教
用 SQL output table 变成如下
yymmdd errortype1 errortype2 errortype3 errortype4 ........ errortype n
====== ========= ========= ========== ========== ===========
2005/9/1 2 0 3 1 .... errorcount for errortype n
2005/9/2 0 2 1 0 .... errorcount for errortype n
... ... ... ... ... ...
(Solved)
[ 本帖最后由 tensaix2j 于 4-9-2006 10:53 AM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 30-8-2006 01:58 PM
|
显示全部楼层
Question 4:
请问下,datepart for yyyymmdd 的代码是什么?。。
好象没有yyyymmdd的。。
(Solved)
[ 本帖最后由 tensaix2j 于 4-9-2006 10:54 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 30-8-2006 05:35 PM
|
显示全部楼层
原帖由 tensaix2j 于 30-8-2006 01:58 PM 发表
请问下,datepart for yyyymmdd 的代码是什么?。。
好象没有yyyymmdd的。。
用 CONVERT
SELECT convert(varchar,datecolumnxxx,112) from tablexxx |
|
|
|
|
|
|
|
楼主 |
发表于 30-8-2006 06:26 PM
|
显示全部楼层
不行。。因为时间会出来。。结果grp不成
select
convert(varchar,[date down],112) as yymmdd
,sum([D/T])
from tbldowntimeeyum04
group by
convert(varchar,[date down],112)
order by yymmdd |
|
|
|
|
|
|
|
发表于 31-8-2006 09:52 AM
|
显示全部楼层
原帖由 tensaix2j 于 30-8-2006 06:26 PM 发表
不行。。因为时间会出来。。结果grp不成
select
convert(varchar,,112) as yymmdd
,sum()
from tbldowntimeeyum04
group by
convert(varchar,,112)
order by yymmdd
其实这方法是行得通的...
问题应该出在你的 D/T... 这两个没有被 group. |
|
|
|
|
|
|
|
楼主 |
发表于 31-8-2006 12:42 PM
|
显示全部楼层
不是syntaxerror。。我是说那个。。grp by..
因为没把时间(hh:mm:ss)除干净,结果grp by 那个时间去。。 |
|
|
|
|
|
|
|
发表于 31-8-2006 02:25 PM
|
显示全部楼层
我尝试过了, 112 是没有时间的, 所以 group by 不会有问题. |
|
|
|
|
|
|
| |
本周最热论坛帖子
|