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£¬
Ïà¹ØÎĵµ£º
1.Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)¡¡¡¡
¡¡¡¡ SQLSERVERµÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬Òò´Ëfrom×Ó¾äÖÐдÔÚ×îºóµÄ±í£¨»ù´¡±ídriving table£©½«±»×îÏÈ´¦Àí£¬ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏ£¬±ØÐëÑ¡Ôñ¼Ç¼ÌõÊý×îÉٵıí×÷Ϊ»ù´¡±í£¬µ±SQLSERVER´¦Àí¶à¸ö±íʱ£¬»áÔËÓÃÅÅÐò¼°ºÏ²¢µÄ·½Ê½Á ......
£¨×ªÔØ£©SQL 2K Êý¾ÝÀàÐÍ
(1)char¡¢varchar¡¢textºÍnchar¡¢nvarchar¡¢ntext
charºÍvarcharµÄ³¤¶È¶¼ÔÚ1µ½8000Ö®¼ä£¬ËüÃǵÄÇø±ðÔÚÓÚcharÊǶ¨³¤×Ö·ûÊý¾Ý£¬¶øvarcharÊDZ䳤×Ö·ûÊý¾Ý¡£Ëùν¶¨³¤¾ÍÊdz¤¶È¹Ì¶¨µÄ£¬µ±ÊäÈëµÄÊý¾Ý³¤¶ÈûÓдﵽָ¶¨µÄ³¤¶Èʱ½«×Ô¶¯ÒÔÓ¢ÎĿոñÔÚÆäºóÃæÌî³ä£¬Ê¹³¤¶È´ïµ½ÏàÓ¦µÄ³¤¶È£»¶ø±ä³¤×Ö·ûÊý¾Ý ......
ÔÚPL/SQLÖÐÒ²ÌṩGOTOÓï¾ä,ÆäÓï·¨ÊÇ
GOTO label;
ÕâÀïlabelÊÇÔÚPL/SQL¿éÖж¨ÒåµÄ±êÇ©.±êÇ©ÊÇÓÃË«¼ýÍ·À¨ºÅÀ¨ÆðÀ´µÄ.µ±Ö´ÐÐGOTOÓï¾äµÄʱºò,¿ØÖÆ»áÁ¢¼´×ªµ½ÓɱêÇ©±êʶµÄÓï¾ä.
1.¶ÔÓÚGOTOµÄÏÞÖÆ
a.¶ÔÓÚ¿é,Ñ»·»òÕßIFÓï¾ä¶øÑÔ,ÏëÒª´ÓÍâ²ãÌøµ½ÄÚ²ãÊÇ·Ç·¨µÄ.
b.ʹÓÃGOTO×Ó¾ä´ÓÒ»¸öIF×Ó¾äÌøµ½ÁíÒ»¸ö×Ó¾äÖÐÒ²ÊÇ·Ç·¨µÄ.
begin
......
·½·¨Ò»£ºÊ¹ÓÃÓαê
declare @ProductName nvarchar(50)
declare pcurr cursor for select ProductName from Products
open pcurr
fetch next from pcurr into @ProductName
while (@@fetch_status = 0)
begin
print (@ProductName)
fetch next from pcurr into @ProductName
end
close pcurr
deallocate pcurr ......
SQLÃæÊÔÌâ
Sql³£ÓÃÓï·¨
ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
SQL·ÖÀࣺ
DDL—Êý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE)
DML—Êý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT)
DCL—Êý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK) Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º
1¡¢ËµÃ÷£º´´½¨ ......