Çë½ÌÒ»¸öÅÅÃûµÄsqlÓï¾ä - MS-SQL Server / »ù´¡Àà
ÎÒÓÐÒ»¸ö±ía£¬ÀïÃæÓÐÈý¸ö×ֶΣ¬¹ÉƱid£¬³É±¾£¬ÊÕÒæ
ëÀûÂʵļÆË㹫ʽÊÇmao=£¨³É±¾-ÊÕÒæ£©/³É±¾
ÏÖÔÚÐèÒª°´ÕÕ2¸öÇø¼äµÃµ½¹ÉƱÅÅÃûµÄÃû´Î
0.1£¼mao¡Ü1 mao¡Ü0.1
Ò²¾ÍÊÇ˵¼ÙÈçëÀûÂÊ<=0.1µÄÓÐ500¸ö¹ÉƱ£¬Ã«ÀûÂÊÔÚ0.1ºÍ1Ö®¼äµÄÓÐ1500¸ö¹ÉƱ
ÄÇô¹ÉƱµÄÅÅÃûµÄÃû´Î·Ö±ðÊÇ1~500ºÍ1~1500
SQL code:
select * ,(select count(1) from
(select *,case when (³É±¾-ÊÕÒæ)*1.0/³É±¾<=0.1 then 0.1 else 1 end mao from [a]) bb
where mao=aa.mao and (³É±¾-ÊÕÒæ)*1.0/³É±¾<=(aa.³É±¾-aa.ÊÕÒæ)*1.0/aa.³É±¾
)
from (select *,case when (³É±¾-ÊÕÒæ)*1.0/³É±¾<=0.1 then 0.1 else 1 end mao from [a])aa
лл°¡£¬Èç¹ûÊǸü¶àÇø¼äÄØ£¿
A¡Ü0 0£¼A¡Ü0.2 0.2£¼A¡Ü0.4 0.4£¼A¡Ü1
±ÈÈçÕâÖÖ£¬ÄÇÄãµÄcase when ÀïÃæ²»¾Í²»¹»ËãÁË£¿
ÄÇÄã¾Ícase when Àï¼Ówhen°¡
Äܲ»ÄÜÓÃrankÕâÑùµÄº¯ÊýʵÏÖÄØ£¿
ÄÜÌṩ²âÊÔÊý¾ÝºÍÏëÒªµÄ½á¹ûÂ𣬿´ÃèÊö¿´µÄÔÎ
²âÊÔÊý¾Ý±ÈÈç
stockid A
1 0.05
2 0.09
3 0.07
4 0.17
5 0.12
7 -1
8 -2
Çø¼äÊÇA¡Ü0 0£¼A¡Ü0.1 0.1£¼A¡Ü0.2
ÒªµÃµ½¹ÉƱ´úÂë¶ÔÓ¦µÄAÖµÔÚÉÏÃæÇø¼äÖеÄÒ»¸öÅÅÃû£¨½µÐò»òÕßÉýÐò£©£¬¾ÍÊÇÀàËÆÕâÑùµÄ
ÉýÐòÅÅÃû
ÅÅÃû stockid A
1 7 -1
2 8 -2
1 1 0
Ïà¹ØÎÊ´ð£º
×Ö¶Î1,×Ö¶Î2.....×Ö¶ÎN,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
ÏëÒªµÄ½á¹ûÊÇ:
1,Na ......
ÎÒ¾õµÃmysqlºÍsqlserverÓй²Í¬µÄµØ·½£º
ÓиöÎÊÌâÊǹØÓÚ±íµÄËøÎÊÌ⣺
½ø³ÌA ½ø³ÌB
select * from user where id in lock share mode£¨¹²ÏíËø)
&nb ......
ÕâÀïÏëÁ˽âÏ£¬¹ØÓÚSQL ServerÖзÖÒ³ºÍOracleÖзÖÒ³£»
ƽ³£Ð´Ó¦ÓóÌÐòµÄʱºò£¬±ÈÈçÓõÄÓïÑÔÊÇJava£¬ÓиöÁбíÒ³Ãæ£¬ÐèÒª¶ÔÊý¾Ý·ÖÒ³ÏÔʾ£»
ÕâÀïÒª·ÖÒ³ÄѵÀ²»ÐèÒª½èÖúJava£¬¶øÖ±½ÓsqlÄÜÖªµÀ·ÖÒ³Âð£¬ÆðÂëÒ²Òª´«¸öÒ³Âë½ ......
½«Ò»¸ö²éѯÓï¾ä¸³¸øÒ»¸ö±äÁ¿£¬ÈçÏ£º
DECLARE @STR NVARCHAR(MAX)
SET @STR='SELECT * from SALE_PROD'
ÔõôÑù²ÅÄÜÖ´ÐÐËüÄØ£¿
Çë¸ßÊÖ£¬ÈÊÐÖ£¬ÏÀ½ã°ï°ïæ°¡
¶àл£¬¿ÉÒÔÀ²£¬¸ßÊÖ°¡
Ö±½ÓÖ´ÐоÍÐÐÁË
exec ......
±íÊý¾Ý
COL1 COL2 COL2 COL4 COL5
----------------------------------------------------------------------------------------------
2010-05-05 00:00 ......