Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IF condition in view in SQL Server

Is it possible to have a if condition in VIEWS

eg

CREATE VIEW
as

  DECLARE @Count int
  SET @Count=-1
  select @Count=EmpID from EmployeeDetails where ID=200
  IF @Count=-1
  BEGIN
    SELECT * FROM TEAM1
  END
  ELSE
  BEGIN
    SELECT * FROM TEAM1
  END
like image 608
Navaneethan Avatar asked Apr 28 '11 12:04

Navaneethan


1 Answers

Views only allow select statements as stated in here

if you need to do if on column values you can use a

SELECT
CASE WHEN COLUMN1 = 1 THEN COLUMNX ELSE COLUMNY END
FROM TABLE1

if your need exceeds this you should create a select from a table valued function instead of a view.

What you need is a simple Procedure

CREATE PROCEDURE DOSOMETHING
(   
    @ID INT
)
AS
BEGIN
    IF @ID > 100
        SELECT 1 AS ID,'ME' AS NAME, GETDATE() AS VARIABLEDATECOL, NEWID() AS VARIABLEGUID
    ELSE
        SELECT 2 AS ID, 'YOU' AS NAME
END
like image 106
Gabriel Guimarães Avatar answered Oct 21 '22 06:10

Gabriel Guimarães