SQL²ÎÊý»¯ÅÅÐòÏê½â
±àдһ¸ö´¢´æ¹ý³Ìusp_GetSortedShippers£¬Ëü½ÓÊÕNorthwindÊý¾Ý¿âÖÐShippers±íµÄÒ»¸öÁÐÃû³Æ×÷ΪÆäÖÐÒ»¸öÊäÈ루@colname£©£¬²¢´Ó¸Ã±í·µ»Ø°´ÊäÈëµÄÁÐÃûÅÅÐòµÄÐС£ÁíÒ»¸öÊäÈ루@sortdir£©±íʾÅÅÐòµÄ·½Ïò,‘A’±íʾ°´Éý˳ÅÅÐò,‘D’±íʾ°´½µÐòÅÅÐò¡£±àд¸Ã´æ´¢¹ý³ÌʱҪעÒâËüµÄÐÔÄÜ£¬¼´£¬¾¡¿ÉÄܵÄʹÓÃË÷Òý£¨ÀýÈ磬ÅÅÐòÁÐÉϵľۼ¯»ò·Ç¾Û¼¯¸²¸ÇË÷Òý£©¡£
´úÂëÇåµ¥7-4ÊǸÃÈÎÎñ½¨ÒéµÄµÚÒ»¸ö½â¾ö·½°¸
´úÂëÇåµ¥7-4 ²ÎÊý»¯ÅÅÐò£¬½â¾ö·½°¸1
USE Northwind;
GO
IF OBJECT_ID('dbo.usp_GetSortedShippers') IS NOT NULL
DROP PROC dbo.usp_GetSortedShippers;
GO
CREATE PROC dbo.usp_GetSortedShippers
@colname AS sysname, @sortdir AS CHAR(1) = 'A'
AS
IF @sortdir = 'A'
SELECT ShipperID, CompanyName, Phone
from dbo.Shippers
ORDER BY
CASE @colname
WHEN N'ShipperID' THEN CAST(ShipperID AS SQL_VARIANT)
WHEN N'CompanyName' THEN CAST(CompanyName AS SQL_VARIANT)
WHEN N'Phone' THEN CAST(Phone AS SQL_VARIANT)
END
ELSE
SELECT ShipperID, CompanyName, Phone
from dbo.Shippers
ORDER BY
CASE @colname
WHEN N'ShipperID' THEN CAST(ShipperID AS SQL_VARIANT)
WHEN N'CompanyName' THEN CAST(CompanyName AS SQL_VARIANT)
WHEN N'Phone' THEN CAST(Phone AS SQL_VARIANT)
END DESC;
GO
¸Ã½â¾ö·½°¸Ê¹ÓÃIFÓï¾ä¸ù¾ÝÇëÇóµÄÅÅÐò·½ÏòÈ·¶¨ÒªÖ´ÐеIJéѯ¡£Á½¸ö²éѯµÄÎ¨Ò»Çø±ðÊÇËüÃǵÄÅÅÐò±í´ïʽ²»Í¬£¬Ò»¸öʹÓÃÉýÐò£¬Ò»¸öʹÓýµÐò¡£Á½¸ö²éѯ¶¼Ê¹ÓÃCASE±í
´ïʽ¸ù¾ÝÊäÈëµÄÁÐÃû·µ»ØºÏÊʵÄÁÐÖµ¡£
×¢Òâ SQL Server¸ù¾Ý±í´ïʽµÄ½á¹ûÖÐÓÅÏȼ¶×î¸ßµÄÊý¾ÝÀàÐÍÈ·¶¨CASE±í´ïʽ½á¹ûµÄÊý¾ÝÀàÐÍ£¬¶ø²»Êǰ´Êµ¼Ê·µ»Ø½á¹ûµÄÊý¾ÝÀàÐÍÈ·¶¨¡£Õâ¾ÍÒâζ×Å£¬Èç¹ûCASE±í´ïʽµÄÒ»¸öTHEN×Ӿ䷵»ØVARCHAR(30)Öµ£¬¶øÁíÒ»¸ö·µ»ØINTÖµ£¬±í´ïʽµÄ½á¹û½«×ÜÊÇINT£¬
Ïà¹ØÎĵµ£º
--desc ±íÃû ÃèÊö±íµÄÄÚÈÝ
desc emp;
--¼ÓÉÏÊýѧ±í´ïʽºÍÁÐÃû ""±£³Ö¸ñʽ
select ename "name space", sal*12 year_sal from emp;
select 2*3 from dual;
select sysdate from dual;
--¿ÕÖµµÄÊýѧ±í´ïʽ ½á¹û¶¼ÊÇ¿ÕÖµ
select ename, sal*12 + comm from emp;
- ......
--sql structured query language
--DML--Data Manipulation Language--Êý¾Ý²Ù×÷ÓïÑÔ
query information (SELECT),
add new rows (INSERT),
modify existing rows (UPDATE),
delete existing rows (DELETE),
perform a conditional update or insert operation (MERGE),
see an execution plan of SQL (EXPLA ......
´æ´¢¹ý³Ì´úÂ룺
--drop procedure p_page
--go
create procedure p_page
(
@Tables varchar(1000), --±íÃûÈçtesttable
@PrimaryKey varchar(100),--±íµÄÖ÷¼ü,±ØÐëΨһÐÔ
@Sort varchar(200) = NULL,--ÅÅÐò×Ö¶ÎÈçf_Name asc»òf_name desc(×¢ÒâÖ»ÄÜÓÐÒ»¸öÅÅÐò×Ö¶Î)
@CurrentPage int = 1,--µ± ......
ÉÏÉϸöÐÇÆÚ£¬ÓÐÈË·´À¡£¬CSDNÓÐSQL×¢Èë¶¶´£¬º¹ÑÕ£¬¼¸ÄêǰΪSQL×¢Èë¶¶´£¬²¿ÃÅרÃŶÔËùÓдúÂë×ö¹ýÒ»´Î·Ç³£´óµÄ¼ì²é£¬¾¹È»ÄǴμì²é»¹ÓÐÒÅ©µÄµØ·½¡£×î½üÕ⼸¸öÐÇÆÚ£¬¾ÍÊÇÒ»Ö±ÔÙ¶Ô´úÂë×öÔٴθ´²é£¬¿´ÓÐûÓÐSQL×¢Èë¶¶´¡£
´æÔÚSQL×¢Èë¶¶´£¬¾ÍÒòΪÄãµÄSQLÓï¾äÊÇ×Ô¼ºÆ´´ ......
ÔÚ¹«¹²ÐÂÎÅ×éÖУ¬Ò»¸ö¾³£³öÏÖµÄÎÊÌâÊÇ“ÔõÑù²ÅÄܸù¾Ý´«µÝ¸ø´æ´¢¹ý³ÌµÄ²ÎÊý·µ»ØÒ»¸öÅÅÐòµÄÊä³ö£¿”¡£ÔÚһЩ¸ßˮƽר¼ÒµÄ°ïÖú֮ϣ¬ÎÒÕûÀí³öÁËÕâ¸öÎÊÌâµÄ¼¸ÖÖ½â¾ö·½°¸¡£
Ò»¡¢ÓÃIF...ELSEÖ´ÐÐÔ¤ÏȱàдºÃµÄ²éѯ
¡¡¡¡¶ÔÓÚ´ó¶àÊýÈËÀ´Ëµ£¬Ê×ÏÈÏëµ½µÄ×ö·¨Ò²ÐíÊÇ£ºÍ¨¹ýIF...ELSEÓï¾ä£¬Ö´Ðм¸¸öÔ¤ÏȱàдºÃµÄ²éѯÖеÄÒ» ......