Whe*_*ill 21 sql sql-server case
我正在使用嵌入在其他一些C#代码中的SQL server语句; 并且只想检查我的表中是否存在列.
如果列(ModifiedByUSer此处)确实存在,那么我想返回1或者true ; 如果没有那么我想返回0或false(或类似的东西,可以在C#中解释).
我已经使用了如下的CASE语句:
SELECT cast(case WHEN EXISTS (select ModifiedByUser from Tags)
THEN 0
ELSE 1
END as bit)
Run Code Online (Sandbox Code Playgroud)
但是如果ModifiedByUser不存在那么我得到一个invalid column name,而不是返回值.
我也考虑过:
IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Tags' AND COLUMN_NAME = 'ModifiedByUser')
BEGIN // Do something here to return a value
END
Run Code Online (Sandbox Code Playgroud)
但是不知道如何基于结果有条件地返回值/ bool/bit.任何帮助非常感谢!
Whe*_*ill 32
最后的答案是上述两个的结合(我赞成两者都表示我的赞赏!):
select case
when exists (
SELECT 1
FROM Sys.columns c
WHERE c.[object_id] = OBJECT_ID('dbo.Tags')
AND c.name = 'ModifiedByUserId'
)
then 1
else 0
end
Run Code Online (Sandbox Code Playgroud)
GSe*_*erg 14
select case
when exists (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Tags' AND COLUMN_NAME = 'ModifiedByUser')
then 0
else 1
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
115043 次 |
| 最近记录: |