SQL ÖÐ where 1=1 ºÍ 1=0µÄ ×÷ÓÃ
where 1=1ÓÐʲôÓã¿ÔÚSQLÓïÑÔÖУ¬Ð´Õâôһ¾ä»°¾Í¸úûдһÑù¡£
select * from table1 where 1=1Óëselect * from table1ÍêȫûÓÐÇø±ð£¬ÉõÖÁ»¹ÓÐÆäËûÐí¶àд·¨£¬1<>2£¬'a'='a','a'<>'b'£¬ÆäÄ¿µÄ¾ÍÖ»ÓÐÒ»¸ö£¬whereµÄÌõ¼þΪÓÀÕæ£¬µÃµ½µÄ½á¹û¾ÍÊÇδ¼ÓÔ¼ÊøÌõ¼þµÄ¡£
ÔÚSQL×¢Èëʱ»áÓõ½Õâ¸ö£¬ÀýÈçselect * from table1 where name='lala'¸øÇ¿ÐмÓÉÏselect * from table1 where name='lala' or 1=1Õâ¾ÍÓÖ±ä³ÉÁËÎÞÔ¼ÊøµÄ²éѯÁË¡£
×î½ü·¢ÏÖµÄÃîÓÃÔÚÓÚ£¬ÔÚ²»¶¨ÊýÁ¿²éѯÌõ¼þÇé¿öÏ£¬1=1¿ÉÒԺܷ½±ãµÄ¹æ·¶Óï¾ä¡£ÀýÈçÒ»¸ö²éѯ¿ÉÄÜÓÐname,age,height,weightÔ¼Êø£¬Ò²¿ÉÄÜûÓУ¬ÄǸÃÈçºÎ´¦ÀíÄØ£¿
String sql=select * from table1 where 1=1
ΪʲôҪд¶àÓàµÄ1=1£¿ÂíÉϾÍÖªµÀÁË¡£
if(!name.equals("")){
sql=sql+"name='"+name+"'";
}
if(!age.equals("")){
sql=sql+"age'"+age+"'";
}
if(!height.equals("")){
sql=sql+"height='"+height+"'";
}
if(!weight.equals("")){
sql=sql+"weight='"+weight+"'";
}
Èç¹û²»Ð´1=1ÄØ£¬ÄÇôÔÚÿһ¸ö²»Îª¿ÕµÄ²éѯÌõ¼þÃæÇ°£¬¶¼±ØÐëÅжÏÓÐûÓÐwhere×־䣬·ñÔòÒªÔÚµÚÒ»¸ö³öÏֵĵط½¼Ówhere
ÓÐÒ»´ÎÔÚÂÛ̳Àï¿´µ½£º"SELECT * from strName WHERE 1 = 0";
²»Àí½âΪʲôÓÐ1=0£¿
¸ÃselectÓï¾äÖ÷ÒªÓÃÓÚ¶ÁÈ¡±íµÄ½á¹¹¶ø²»¿¼ÂDZíÖеÄÊý¾Ý£¬ÕâÑù½ÚÊ¡ÁËÄڴ棬ÒòΪ¿ÉÒÔ²»Óñ£´æ½á¹û¼¯¡£
ÁíÍ⣬Õâ¸öÓÃÔÚʲôµØ·½ÄØ£¿Ö÷ÒªÓÃÓÚ´´½¨Ò»¸öÐÂ±í£¬¶øÐ±íµÄ½á¹¹Óë²éѯµÄ±íµÄ½á¹¹ÊÇÒ»ÑùµÄ¡£ÈçÏÂSQLÓï¾ä£º
create table newtable as select * from oldtable where 1=0;
Ïà¹ØÎĵµ£º
select case when b.name is null and c.name is null then 'ºÏ¼Æ' when b.name is null and c.name is not null then 'С¼Æ' else b.name end as mtrname,
sum(a.number),c.name as cname from x_sell a join x_material b on a.mtr=b.fid join p_organi c on c.fid=a.customer
where a.stime>'2009-10-01'
GROUP B ......
Ò»£ºsql loader µÄÌØµã
oracle×Ô¼º´øÁ˺ܶàµÄ¹¤¾ß¿ÉÒÔÓÃÀ´½øÐÐÊý¾ÝµÄÇ¨ÒÆ¡¢±¸·ÝºÍ»Ö¸´µÈ¹¤×÷¡£µ«ÊÇÿ¸ö¹¤¾ß¶¼ÓÐ×Ô¼ºµÄÌØµã¡£
±ÈÈç˵expºÍimp¿ÉÒÔ¶ÔÊý¾Ý¿âÖеÄÊý¾Ý½øÐе¼³öºÍµ¼³öµÄ¹¤×÷£¬ÊÇÒ»ÖֺܺõÄÊý¾Ý¿â±¸·ÝºÍ»Ö¸´µÄ¹¤¾ß£¬Òò´ËÖ÷ÒªÓÃÔÚÊý¾Ý¿âµÄÈȱ¸·ÝºÍ»Ö¸´·½Ãæ¡£ÓÐ×ÅËٶȿ죬ʹÓüòµ¥£¬¿ì½ÝµÄÓŵ㣻ͬʱҲÓÐһР......
--ÐÐÁÐת»» ÐÐתÁÐ
DROP TABLE t_change_lc;
CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);
INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal from dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, tru ......
1.Ò»µÀSQLÓï¾äÃæÊÔÌ⣬¹ØÓÚgroup by
±íÄÚÈÝ£º
2005-05-09 ʤ
2005-05-09 ʤ
2005-05-09 ¸º
2005-05-09 ¸º
2005-05-10 ʤ
2005-05-10 ¸º
2005-05-10 ¸º
Èç¹ûÒªÉú³ÉÏÂÁнá¹û, ¸ÃÈçºÎдsqlÓï¾ä?
ʤ ¸º
2005-05-09 2 2
2005-05-10 ......
select datediff(month,'2009-11-02','2009-12-01')
²»ÖªµÀÄãÒªÔõô¸öÔ²îÒì
ÉÏÃæµÄÃüÁî½á¹ûÒ²ÊÇ1
µ«ÊÇÆäʵ°´ÕÕ³£Ê¶²îÒì²»ÊÇÒ»¸öÔ£¬ÊDzîÒ»ÌìÒ»¸öÔÂ
ÕâÓжÎÏֳɵĴúÂë¿ÉÒÔ°ïÖúÄãËã³ö³£Ê¶ÉϵIJîÒì
SQL code
declare @t table(a datetime,b datetime);
insert @t
select '2009-11-02','2009-12-01' UNION ......