日期:2014-05-18  浏览次数:20568 次

SQL语句问题,寻求高手
本人是菜鸟,见笑了,废话少说,直入正题

要将 A表 B列的值随机修改成 1-60,修改的条件是前500条,或者是ID列1000-1500,每一行的B列随机数要不同,求解!

谢高手,小弟非常感谢!

------解决方案--------------------
SQL code
--生成测试数据
create table t1(id int,col int)
insert into t1(id)select top 1000 number from master..spt_values where type='p' and number>0
go
--楼主要的语句
update a set col=b.n from t1 a inner join( 
select number,convert(int,RAND(CHECKSUM(NEWID()))*60)n from master..spt_values where type='p' and number between 1 and 500
)b on a.id=b.number
--结果
select * from t1
/*
id          col
----------- -----------
1           59
2           2
3           54
4           29
5           46
6           45
7           16
8           59
9           50
10          53
11          3
12          54
13          20
14          45
15          25
16          3
17          51
18          31
19          26
20          12
21          22
22          37
23          22
24          4
25          55
26          9
27          49
28          39
29          3
30          20
31          34
32          17
33          15
34          11
35          34
36          29
37          7
38          54
39          12
40          23
41          53
42          8
43          39
44          55
45          34
46          5
47          23
48          20
49          2
50          35
51          6
52          42
53          43
54          42
55          28
56          17
57          34
58          58
59          9
60          30
61          6
62          8
63          45
64          24
65          59
66          20
67          26
68          0
69          37
70          50
71          36
72          29
73          3
74          22
75          9
76          55
77          41
78          14
79          55
80          34
81          4
82          7
83          18
84          39
85          31
86          17
87          9
88          52
89          31
90          15
91          55
92          48
93          59
94          38
95          59
96          12
97          6
98          15
99          0
100         5
101         29
102         3
103         50
104         6
105         20
106         18
107         30
108         40
109         35
110         52
111         57
112         18
113         53
114         32
115         48
116         15
117         23
118         2
119         42
120         35
121         19
122         23
123         28
124         21
125         23
126         9
127         10
128         33
129         57
130         22
131         31
132         44
133         9
134         39
135         5
136         12
137         27
138         37
139         57
140         46
141         26
142         27
143         54
144         31
145         13
146         53
147         8
148         2
149         58
150         29
151         20
152         26
153         38
154         41
155         0
156         46
157         45
158         46
159         38
160         20
161         23
162         1
163         15
164         39
165         0
166         38
167         16
168         12
169         20
170         39
171         34
172         52
173         47
174         47
175         20
176         52
177         38
178         3
179         0
180         3
181         7
182         0
183         22
184         51
185         39
186         39
187         30
188         30
189         55
190         1
191         28
192         21
193         23
194         19
195         9
196         47
197         8
198         40
199         57
200         50
201         30
202         55
203         18
204         32
205         25
206         58
207         3
208         12
209         30
210         59
211         15
212         48
213         22
214         59
215         48
216         23
217         55
218         27
219         3
220         47
221         39
222         41
223         9
224         59
225         13
226         37
227