刚在vfp版看到这个问题,看大家用SQL这么解决 20js_szy]

发布时间:2016-12-7 22:27:38 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"刚在vfp版看到这个问题,看大家用SQL这么解决 20js_szy]",主要涉及到刚在vfp版看到这个问题,看大家用SQL这么解决 20js_szy]方面的内容,对于刚在vfp版看到这个问题,看大家用SQL这么解决 20js_szy]感兴趣的同学可以参考一下。

两列:            列1    列2            1      1            2      1            3      1            4      1            1      2            2      2             3      2            1      3            2      3            3      3  通过列1的值产生列2的值。(如果读取列1的值为1加1,否则不加)

2005用ROW_NUMBER(),2000用临时表

晕,明明选的基础类的,却跳到新技术前沿里了

------------------------------------- --  Author : liangCK 梁爱兰 --  Comment: 小梁 爱 兰儿 --  Date   : 2009-08-06 09:16:36 -------------------------------------   --> 生成测试数据: @T DECLARE @T TABLE (列1 INT,列2 INT) INSERT INTO @T SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 UNION ALL SELECT 4,0 UNION ALL SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 UNION ALL SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 --SQL查询如下: DECLARE @列2 INT; SET @列2 = 0; UPDATE @T SET     @列2 = CASE WHEN 列1=1 THEN @列2 + 1 ELSE @列2 END,     列2 = @列2; SELECT * FROM @T; /* 列1          列2 ----------- ----------- 1           1 2           1 3           1 4           1 1           2 2           2 3           2 1           3 2           3 3           3 (10 行受影响) */

Create table T(col1 int,col2 int) insert into T values(1,null) insert into T values(2,null) insert into T values(3,null) insert into T values(4,null) insert into T values(1,null) insert into T values(2,null) insert into T values(3,null) insert into T values(1,null) insert into T values(2,null) GO declare @col1 int,@col2 int set @col2=0 Update T set @col2= case when [email protected]+1                 then @col2                 else @col2+1                 end,     @col1=col1,     [email protected] GO select * from T /* 1 1 2 1 3 1 4 1 1 2 2 2 3 2 1 3 2 3 */ Drop table T

为什么我难得上来写一个,P梁你还要在我前面

DECLARE @TB TABLE([列1] INT, [列2] INT) INSERT @TB  SELECT 1, 1 UNION ALL  SELECT 2, 1 UNION ALL  SELECT 3, 1 UNION ALL  SELECT 4, 1 UNION ALL  SELECT 1, 2 UNION ALL  SELECT 2, 2 UNION ALL  SELECT 3, 2 UNION ALL  SELECT 1, 3 UNION ALL  SELECT 2, 3 UNION ALL  SELECT 3, 3 SELECT *,ID=IDENTITY(INT,1,1) INTO # FROM @TB   SELECT 列1,COL=(SELECT COUNT(*) FROM # WHERE 列1=1 AND ID<=T.ID) FROM # AS T DROP TABLE # /* 列1          COL          ----------- -----------  1           1 2           1 3           1 4           1 1           2 2           2 3           2 1           3 2           3 3           3 (10 row(s) affected) */

看错了55555

------------------------------------- --  Author : liangCK 梁爱兰 --  Comment: 小梁 爱 兰儿 --  Date   : 2009-08-06 09:16:36 -------------------------------------   --> 生成测试数据: @T DECLARE @T TABLE (列1 INT,列2 INT) INSERT INTO @T SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 UNION ALL SELECT 4,0 UNION ALL SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 UNION ALL SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 --SQL查询如下: --递归 ;WITH Liang AS (     SELECT rowid=ROW_NUMBER() OVER(ORDER BY GETDATE()),* FROM @T ), Liang2 AS (     SELECT rowid,列1,列2,level = 1     FROM Liang WHERE rowid=1     UNION ALL     SELECT B.rowid,B.列1,B.列2,CASE WHEN B.列1 = 1 THEN A.level+1 ELSE A.level END     FROM Liang2 AS A         JOIN Liang AS B     ON A.rowid = B.rowid-1 ) SELECT 列1,level AS 列2 FROM Liang2; /* 列1          列2 ----------- ----------- 1           1 2           1 3           1 4           1 1           2 2           2 3           2 1           3 2           3 3           3 (10 行受影响) */

引用楼主 js_szy 的回复:两列:           列1    列2           1      1           2      1           3      1           4      1           1      2           2      2            3      2           1      3           2      3           3      3 通过列1的值产生列2的值。(如果读取列1的值为1加1,否则不加) 小卒这个像我那天问那个

VFP,是我学的第一门数据库

引用 9 楼 sql77 的回复:引用楼主 js_szy 的回复: 两列:           列1    列2           1      1           2      1           3      1           4      1           1      2           2      2            3      2           1      3           2      3           3      3 通过列1的值产生列2的值。(如果读取列1的值为1加1,否则不加) 小卒这个像我那天问那个 是类似,

引用 10 楼 alisafan123 的回复:VFP,是我学的第一门数据库 我也是的,呵呵

DECLARE @T TABLE (列1 INT,列2 INT) INSERT INTO @T SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 UNION ALL SELECT 4,0 UNION ALL SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 UNION ALL SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,0 declare @in int,@flag int set @in=0 set  @flag=0 update @T set [email protected],     @flag=列1,     @in=case when @flag=1 then 1 else ISNULL(@flag,1) end select * from @T /* (10 行受影响) (10 行受影响) 列1          列2 ----------- ----------- 1           1 2           2 3           3 4           4 1           1 2           2 3           3 1           1 2           2 3           3 (10 行受影响) */

SELECT 列1,COL=(SELECT COUNT(*) FROM # WHERE 列1=1 AND ID<=T.ID) FROM # AS T -- 6楼大侠的这个代码不是很明白。请指教!

上一篇:求数据库毕业设计题! 20分,无满意结帖,结帖人shyskyshy]
下一篇:现在流行的有什么 新技术? 20lifenglijun]

相关文章

相关评论