2016-08-28 44 views
0

我將部門名稱存儲在一個變量@department中,我將從一行中獲取該特定部門名稱我想查找departments表中是否存在部門標識表示用戶輸入的部門名稱是否爲一個有效的部門與否。這個怎麼做?如何將此查詢轉換爲布爾表達式?如何檢查SQL查詢是否已在SQL Server 2012中的IF-ELSE控制語句中成功執行?

create table dbo.departments 
(
    department_id int primary key; 
    department_name varchar(255); 
) 

if(select @finaldepartment_id = department_id 
    from dbo.departments 
    where department_name like @department) 
    set @department_flag = 1; 
else 
    set @department_flag = 0; 
+0

這真的取決於你想如何使用結果。如果在另一個查詢中使用,我會使用不同的方法。如果您在程序中使用它(SP或c#j我可能使用存儲過程或函數 –

回答

2

它可以簡化爲單一的查詢

SET @department_flag = CASE 
         WHEN EXISTS (SELECT 1 
             FROM dbo.departments 
             WHERE department_name LIKE Concat('%',@department,'%')) THEN 1 
         ELSE 0 
         END 
+0

使用案例似乎是最佳方法,但它會引發OUTPUT:關鍵字' THEN' –

+1

@SiddharthBhardwaj - 是的,有一個錯字修復它。 –

1

要檢查是否有你的病症使用的EXISTS

IF EXISTS (
    select 1 
    from dbo.departments 
    where department_name like '%'[email protected]+'%' 
) 

如果您需要從部門的ID分配到一個變量,設置變量與結果,然後檢查是否匹配任何部門它不是空的。

+0

感謝它的作用像一個魅力 –

相關問題