¹ØÓÚSQL CASE WHEN µÄÎÊÌâ
ÎÒÏÖÔÚдÁËÒ»¸ö´æ´¢¹ý³Ì£¬ÏëÔËÐÐÕâ¸ö´æ´¢¹ý³Ì´«Èë±íÃûµÄ²ÎÊý£¬¾ÍÄÜÊä³ö¸Ã±íËùÓÐÁеÄÁÐÃûºÍÁеÄÊý¾ÝÀàÐÍ¡£´úÂëÈçÏ£º
SQL code:
CREATE TABLE A(number INT PRIMARY KEY IDENTITY,[text] VARCHAR(20))
GO
CREATE PROCEDURE PROC_GetColumnNamefromTableName
@tablename VARCHAR(20)
AS
DECLARE @tableID INT
SET @tableID = (SELECT TOP(1) id from sysobjects
WHERE xtype = 'U' AND name = @tablename)
SELECT [name],
CASE xtype
WHEN 56 THEN 'int'
ELSE CASE xtype
WHEN 167 THEN 'VARCHAR(' + prec + ')' ELSE 0 END
END Êý¾ÝÀàÐÍ
from syscolumns WHERE ID = @tableID
GO
EXEC PROC_GetColumnNamefromTableName 'A'
ÏÖÔÚÎÒÕâ¶Î´úÂëÓÐÁ½¸öÎÊÌ⣬
1.CASEÒ»¸öintÀàÐ͵Ä×ֶβ»ÄÜ·µ»ØÒ»¸ö×Ö·ûÀàÐ͵ÄÖµ£¬ËùÒÔ´úÂë³ö´í¡£
2.Èç¹ûÎÒÓкܶàÆäËûµÄÊý¾ÝÒªÅжϣ¬Èçtext,nvarchar,floatµÈ¡¡CASE WHENÕâÑùд±È½ÏÂé·³£¬ÓÐûÓÐÆäËûµÄ·½Ê½Ð´¸üºÃÄØ£¿
SQL code:
--ÓÃ
sp_columns 'tb'
SELECT [name],
CASE xtype
WHEN 56 THEN 'int'
WHEN 167 THEN 'VARCHAR(' + prec + ')'
ELSE '0'
END Êý¾ÝÀàÐÍ
from syscolumns
WHERE ID = @tableID
Ïà¹ØÎÊ´ð£º
ÇëÎÊһϣ¬ÍâÍøÁ½Ì¨SQLSERVERʵÀýÊý¾Ý´«Ê䣬ÓÐûÓвÉÓÃÊý¾ÝѹËõºÍ¼ÓÃÜ¡£Ñ¹Ëõ±ÈÊǶàÉÙ£¬¼ÓÃÜÊÇʲô¼ÓÃÜËã·¨£¿Ïà¹ØÎĵµÄÄÀï¿ÉÒÔÕÒµ½£¿Ð»Ð»
ÎÒÒ²ÏëÖªµÀ£¡¹Ø×¢´ËÌù£¡
¹Ø×¢¡«¡«
Êý¾Ý¿â´óÅ£¶¼ÄÄÈ¥Á˰¡£¿
......
³¡¾°ÈçÏ£º
¿Í»§°Ñ±¸·ÝºÃµÄÊý¾Ý¿â£¬·¢¸øÎÒ£¬ÎÒÔÚ±¾»ú»¹Ôºó£¬ÔËÐÐдºÃµÄ´æ´¢¹ý³Ì£¬±È½Ï¿ì£¬²¢ÇÒÔÚʵʩÄDZßÔËÐÐͬÑù±È½Ï¿ì¡£µ«Êǵ±ÊµÊ©ÔÚ¿Í»§ÄDZßÔËÐеÄʱºòËٶȾͷdz£µÄÂý£¬Ê±¼ä³¬³öÁ˳ÌÐòµÄʱ¼äÏÞÖÆ¡£Ô¶³ÌÔÚ¿Í»§ÄÇ ......
CREATE PROCEDURE [selectvipcompany]
@username varchar(50),
@companyname varchar(50),
@endtime varchar(1)
AS
declare @sql varchar(1000)
set @sql='' ......
Êý¾Ý¿âÒªÔõôѧ²Å²»»áÏԵóéÏó°¡£¿
Õâ¾ÍÒª¿´ÄãÊʺÏʲô·½·¨ÁË£¬Õâ¾ßÌå²»ºÃ˵µÄ.....
ÔõôÁË£¬ÄѵÀ´ó¼Ò¶¼²»»á£¬»¹ÊÇÕæµÄÌ«³éÏó´ó¼Ò²»ÖªµÀÔõô˵°¡
½áºÏÄã²Ù×÷Êý¾Ý¿âµÄÌå»áºÍÀí½â£¬Ó¦¸ÃЧ¹û»á¸üºÃ¡£·ñÔò£¬Ò ......
Ò»¡¢7|3|1,8|6|1,3|1|1,16|1|1,5|7|1,9|7|1
¶þ¡¢6|3|1,7|3|1,8|6|1,2|1|1,3|1|1,16|1|1,4|7|1,5|7|1,9|7|1,10|7|1,11|4|1,12|4|1,13|4|1,14|5|1,15|5|1,17|0|1
ÔõÑù²éѯ Ò» ÔÚ ¶þ ÀïÃæ²¢Êä³ö¼Ç¼¼¯¡£
SQL code: ......