SQL 向上/向下

select case request.querystring("order")
     case "up"
         strsql = "update story set orderField = orderField + 1 where orderField = "& request.querystring("orderField")-1 & " and ID = " & request.querystring("ID") & ";" &_
"update TABLE set orderField = orderField - 1 where PrimaryKeyId = " & request.querystring("PrimaryKeyId") & " and ID = " & request.querystring("ID")
updateDatabase(strsql)

     case "down"
        strsql = "update story set orderField = orderField - 1 where orderField = "& request.querystring("orderField")+1 & " and ID = " & request.querystring("ID") & ";" &_
"update TABLE set orderField = orderField + 1 where PrimaryKeyId = " & request.querystring("PrimaryKeyId") & " and ID = " & request.querystring("ID")
updateDatabase(strsql)

end select

<a href="&scriptName&"?order=up&ID="&ID&"&PrimaryKeyId="&PrimaryKeyId&"&orderField="&orderField&">up</a>
<a href="&scriptName&"?order=down&ID="&ID&"&PrimaryKeyId="&PrimaryKeyId&"&orderField="&orderField&">down</a>

SQL 向后LIKE语句

Sometimes you need to think backwards.

Here was the problem. I needed to match up some IP address ranges to the company that owns them. Looking for a simple solution to the problem I came up with storing the IP address block patterns in the database as follows:

ip_pattern
----------------
127.%.%.%
192.168.%.%
10.%.%.%

Any idea why I choose % as the wildcard?

That's right - it's the wildcard operator in SQL for the LIKE statement.

So now when I have have an IP address 192.168.1.1, I can do what I like to call a backwards LIKE query:

SELECT company, ip_pattern
FROM company_blocks
WHERE '192.168.1.1' LIKE ip_pattern

This works on SQL Server and MySQL, and I would think it should work fine on any database server.

SQL 在数据库中安装plpgsql

/*
* In command prompt type this command
*/

createlang plpgsql database_name

SQL 小写MySQL列

UPDATE users SET email = LOWER(email);

SQL Postgresql:更改列的数据类型

alter table <tableName> alter column <columnName> type <newDataType>

SQL Postgresql中两个日期之间的差异

CREATE OR REPLACE FUNCTION datediff (diffType Character Varying(15), date1 Date, date2 Date) RETURNS integer AS $$
DECLARE
	YEAR_CONST Character Varying(15) := 'year';
	MONTH_CONST Character Varying(15) := 'month';
	DAY_CONST Character Varying(15) := 'day';

	diffInInterval Interval;
	diffInDoublePrecision Double Precision := 0;
	diffInInteger Integer := 0;
	dateTemp Date;
BEGIN
	
	diffInInterval := age(date2, date1);

	IF lower($1) = lower(YEAR_CONST) THEN
		diffInDoublePrecision := date_part('Year', diffInInterval);
	ELSEIF lower($1) = lower(MONTH_CONST) THEN
		diffInDoublePrecision := (date_part('Year', diffInInterval) * 12) + date_part('Month', diffInInterval);
	ELSEIF lower($1) = lower(DAY_CONST) THEN
		diffInDoublePrecision := endDate - startDate;
	END IF;

	diffInInteger := CAST(diffInDoublePrecision as Integer);
	RETURN diffInInteger;
END;
$$ LANGUAGE plpgsql;

SQL 在UNION中排序多个SELECT语句

(SELECT a FROM t1 WHERE a=10 AND B=1)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;

SQL 使用WHERE的MySQL LOAD DATA INFILE

mysqldump --tab='/tmp' --fields-terminated-by=',' --fields-optionally-enclosed-by='"' --lines-terminated-by="\n" --no-create-info --single-transaction --quick -uroot -w "created_on > '2007-11-06 14:10:00'" ads impressions

SQL 检查/重置Identity MS-SQL

-- Check ident value

	dbcc checkident(tbl_mqb_data_templates)

-- Reset ident value

	dbcc checkident(tbl_mqb_data_templates, reseed, 0)

SQL 表ProvinciasEspaña

CREATE TABLE `provincias` (
  `id` int(11) NOT NULL auto_increment,
  `nombre` varchar(125) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `provincias` VALUES (15,'Coruña, A');
INSERT INTO `provincias` VALUES (1,'Alava');
INSERT INTO `provincias` VALUES (2,'Albacete');
INSERT INTO `provincias` VALUES (3,'Alicante');
INSERT INTO `provincias` VALUES (4,'Almería');
INSERT INTO `provincias` VALUES (33,'Asturias');
INSERT INTO `provincias` VALUES (5,'Avila');
INSERT INTO `provincias` VALUES (6,'Badajoz');
INSERT INTO `provincias` VALUES (8,'Barcelona');
INSERT INTO `provincias` VALUES (9,'Burgos');
INSERT INTO `provincias` VALUES (10,'Cáceres');
INSERT INTO `provincias` VALUES (11,'Cádiz');
INSERT INTO `provincias` VALUES (39,'Cantabria');
INSERT INTO `provincias` VALUES (12,'Cástellón');
INSERT INTO `provincias` VALUES (51,'Ceuta');
INSERT INTO `provincias` VALUES (13,'Ciudad Real');
INSERT INTO `provincias` VALUES (16,'Cuenca');
INSERT INTO `provincias` VALUES (14,'Córdoba');
INSERT INTO `provincias` VALUES (17,'Girona');
INSERT INTO `provincias` VALUES (18,'Granada');
INSERT INTO `provincias` VALUES (19,'Guadalajara');
INSERT INTO `provincias` VALUES (20,'Guipuzcoa');
INSERT INTO `provincias` VALUES (21,'Huelve');
INSERT INTO `provincias` VALUES (22,'Huesca');
INSERT INTO `provincias` VALUES (7,'Illes Baleares');
INSERT INTO `provincias` VALUES (23,'Jaén');
INSERT INTO `provincias` VALUES (26,'Rioja, La');
INSERT INTO `provincias` VALUES (35,'Palmas, Las');
INSERT INTO `provincias` VALUES (24,'León');
INSERT INTO `provincias` VALUES (25,'Lleida');
INSERT INTO `provincias` VALUES (27,'Lugo');
INSERT INTO `provincias` VALUES (29,'Málaga');
INSERT INTO `provincias` VALUES (28,'Madrid');
INSERT INTO `provincias` VALUES (52,'Melilla');
INSERT INTO `provincias` VALUES (30,'Murcia');
INSERT INTO `provincias` VALUES (31,'Navarra');
INSERT INTO `provincias` VALUES (32,'Ourense');
INSERT INTO `provincias` VALUES (34,'Palencia');
INSERT INTO `provincias` VALUES (36,'Pontevedra');
INSERT INTO `provincias` VALUES (37,'Salamanca');
INSERT INTO `provincias` VALUES (40,'Segovia');
INSERT INTO `provincias` VALUES (41,'Sevilla');
INSERT INTO `provincias` VALUES (42,'Soria');
INSERT INTO `provincias` VALUES (38,'Santa Cruz de Tenerife');
INSERT INTO `provincias` VALUES (43,'Tarragona');
INSERT INTO `provincias` VALUES (44,'Teruel');
INSERT INTO `provincias` VALUES (45,'Toledo');
INSERT INTO `provincias` VALUES (46,'Valencia');
INSERT INTO `provincias` VALUES (47,'Valladolid');
INSERT INTO `provincias` VALUES (48,'Vizcaya');
INSERT INTO `provincias` VALUES (49,'Zamora');
INSERT INTO `provincias` VALUES (50,'Zaragoza');