当前位置: 代码迷 >> Sql Server >> 求1个有选择功能的视图,请高手入。该怎么处理
  详细解决方案

求1个有选择功能的视图,请高手入。该怎么处理

热度:92   发布时间:2016-04-27 16:46:26.0
求1个有选择功能的视图,请高手入。
config表中有mode字段,mode字段只有1或者0两个值。

另有a表和b表

当mode的值为1时视图select   a表的内容,mode为0时select   b表的内容。

求这个视图怎么写?

------解决方案--------------------
CREATE TABLE #A(id int,ColumnN1 nvarchar(20))
CREATE TABLE #B(id int,ColumnN1 nvarchar(20))
CREATE TABLE #config(mode bit)

INSERT INTO #A SELECT 1, 'A1 '
INSERT INTO #B SELECT 1, 'B1 ' UNION ALL SELECT 2, 'B2 '
INSERT INTO #config SELECT 1

--当#A与#B表的结构相同时候
SELECT * FROM #A WHERE EXISTS(SELECT 1 FROM #config WHERE mode=1)
UNION ALL
SELECT * FROM #A WHERE EXISTS(SELECT 1 FROM #config WHERE mode=0)

--当当#A与#B表的结构不相同时候,使用存储过程来,动态SQL语句
--CREATE PROC Proc_Name
[email protected] nvarchar(3000)
--AS
--DECLARE @Sql nvarchar(4000)
--IF EXISTS(SELECT 1 FROM #config WHERE mode=1)
-- SET @Sql= 'SELECT * FROM #A '[email protected]
--ELSE
-- SET @Sql= 'SELECT * FROM #A '[email protected]
--EXECUTE (@Sql)
--GO


DROP TABLE #A,#B,#config

  相关解决方案