我如何IF...THEN
在SQL SELECT
声明中执行?
例如:
SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
Run Code Online (Sandbox Code Playgroud) 本OR
该在WHEN
一个子句CASE
语句不支持.我怎样才能做到这一点?
CASE ebv.db_no
WHEN 22978 OR 23218 OR 23219 THEN 'WECS 9500'
ELSE 'WECS 9520'
END as wecs_system
Run Code Online (Sandbox Code Playgroud) 有没有办法在php开关中使用'OR'运算符或等效运算符?例如,像这样:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
Run Code Online (Sandbox Code Playgroud) 有没有人知道如何在PostgreSQL中创建交叉表查询?
例如,我有下表:
Section Status Count
A Active 1
A Inactive 2
B Active 4
B Inactive 5
Run Code Online (Sandbox Code Playgroud)
我想查询返回以下交叉表:
Section Active Inactive
A 1 2
B 4 5
Run Code Online (Sandbox Code Playgroud)
这可能吗?
如何在ASP.NET MVC中使用小写,加上下划线?所以我/dinners/details/2
打电话DinnersController.Details(2)
,如果可能的话,/dinners/more_details/2
打电话DinnersController.MoreDetails(2)
?
所有这些仍然使用像这样的模式{controller}/{action}/{id}
.
可能重复:
C# - "开启类型"有比这更好的选择吗?
如果你想要switch
一种类型的对象,最好的方法是什么?
private int GetNodeType(NodeDTO node)
{
switch (node.GetType())
{
case typeof(CasusNodeDTO):
return 1;
case typeof(BucketNodeDTO):
return 3;
case typeof(BranchNodeDTO):
return 0;
case typeof(LeafNodeDTO):
return 2;
default:
return -1;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这不起作用,但我想知道如何解决这个问题.if/else
在这种情况下是否适用声明?
或者你使用开关并添加.ToString()
到类型?
我试着四处寻找但找不到任何可以帮助我的东西.
我正在尝试在SQL中执行此操作:
declare @locationType varchar(50);
declare @locationID int;
SELECT column1, column2
FROM viewWhatever
WHERE
CASE @locationType
WHEN 'location' THEN account_location = @locationID
WHEN 'area' THEN xxx_location_area = @locationID
WHEN 'division' THEN xxx_location_division = @locationID
Run Code Online (Sandbox Code Playgroud)
我知道我不应该在每个人的末尾放置'= @locationID',但我无法使语法接近正确.SQL在第一条WHEN行上一直抱怨我的'='
救命!
我有一个SQL语句,有一个CASE
从SELECT
,我只是无法正确.你们能告诉我一个例子CASE
,说明案件的条件是什么,结果来自案件.例如:
Select xxx, yyy
case : desc case when bbb then 'blackberry';
when sss then 'samsung';
end
from (select ???? .....
Run Code Online (Sandbox Code Playgroud)
结果显示
name age handphone
xxx1 yyy1 blackberry
xxx2 yyy2 blackberry
Run Code Online (Sandbox Code Playgroud) 我们有一个日志表,其中有一个消息列,有时会有一个异常堆栈跟踪.我有一些标准来确定消息是否具有此功能.我们不希望向客户显示这些消息,而是发出如下消息:
内部错误发生.请与我们联系,参考代码为xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
其中xxx等是表中的guid列.我正在写这样的存储过程:
declare @exceptionCriteria nvarchar(50)
select @exceptionCriteria = '%<enter criteria etc>%'
select LogDate,
case
when Message like @exceptionCriteria
then 'Internal Error Occured. Reference Code: ' + str(RequestID)
else Message
end
from UpdateQueue
Run Code Online (Sandbox Code Playgroud)
RequestID
是SQL Server中的Guid数据类型,在此处不转换为字符串.我已经看到了一些关于如何将Guid转换为字符串的代码,但它是多行的,我不认为它会在case语句中起作用.有任何想法吗?
以下图像是Microsoft SQL Server 2008 R2系统视图的一部分.从图片我们可以看到,之间的关系sys.partitions
和sys.allocation_units
依赖的价值sys.allocation_units.type
.所以要将它们连接在一起,我会写一些与此类似的东西:
SELECT *
FROM sys.indexes i
JOIN sys.partitions p
ON i.index_id = p.index_id
JOIN sys.allocation_units a
ON CASE
WHEN a.type IN (1, 3)
THEN a.container_id = p.hobt_id
WHEN a.type IN (2)
THEN a.container_id = p.partition_id
END
Run Code Online (Sandbox Code Playgroud)
但是上面的代码给出了语法错误.我猜这是因为CASE
声明.任何人都可以帮忙解释一下吗?
谢谢!
添加错误消息:
消息102,级别15,状态1,行6'='附近的语法不正确.
case ×10
sql ×6
sql-server ×5
t-sql ×2
.net ×1
asp.net-mvc ×1
c# ×1
case-when ×1
crosstab ×1
guid ×1
if-statement ×1
join ×1
php ×1
pivot ×1
postgresql ×1
reflection ×1
routes ×1
url ×1