select field1, field2, Field3,
case when exists
(select field1
from tbl1
where field < 0) then 0 else field1 end as Field2
from tbl1
Run Code Online (Sandbox Code Playgroud) 我一直在尝试将If Else语句转换为切换但是它给出了一个错误,它需要一个常量:
这是我一直在研究的代码:
using System;
namespace ConsoleApplication6
{
class Program
{
static void Main()
{
String me;
int ME = 0, YOU = 5, THEY = 20, THEM = 30;
Console.WriteLine("Default Values: YOU = 5, THEY = 20 and THEM = 30\nValue for \"ME\" >>");
me = Console.ReadLine();
ME = Int16.Parse(me);
switch(true) {
case (ME > 0 && ME < 12) :
YOU = ME;
Console.WriteLine("Value of YOU is {0}", YOU);
break;
case ( ME == 15):
YOU = THEY …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Oracle数据库中执行查询.该查询在where子句中有case构造.
where
sale.op = 2 and
case when (:stat = -11) then (sale.type_id = 27 or sale.type_id = 28 or sale.type_id = 29)
else
(sale.type_id = 27)
end
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
ORA-00907:缺少右括号.
在Derby SQL中这是有效的.有人可以帮帮我吗?谢谢.
SELECT CONCAT(firstname," ",lastname," ",CASE dept_id
WHEN '1' THEN 'ITD'
WHEN '4' THEN 'FMAD'
WHEN '6' THEN 'GCSMD'
WHEN '7' THEN 'SSHED'
WHEN '10' THEN 'GPD'
ELSE 'Z_ISDC'
END AS ayam) as staffname
FROM ost_staff
Run Code Online (Sandbox Code Playgroud)
我想要的输出staffname是"John Doe ITD",但它不起作用.
我有一种情况,我必须为每个记录提供序列号。如果帐号不同,则序列号应重新初始化为初始值。
我尝试这样
declare @account_no varchar(50)
declare @seq_no int
declare @temp_no int
set @temp_no=1
select
(@account_no = (CASE WHEN @account_no <> PN.vst_int_id
THEN PN.vst_int_id
END))
,(@seq_no = (CASE WHEN @account_no = PN.vst_int_id
THEN @temp_no + 1
ELSE 1
END))
,@seq_no
,nte_pri_cd
from
TSM310_PATIENT_NOTES PN
where
vst_int_id = '4588611'
Run Code Online (Sandbox Code Playgroud) 如果用户输入800 @WorkShop,则应返回所有具有800个车间ID和900个车间ID的记录.
如果用户传递任何其他ID,@WorkShop它应该只返回选择@WorkShopId的记录.
我试过以下:
SELECT *
FROM Test
WHERE Workshop IN (
CASE
WHEN @WorkShop = N'800' THEN N'900' AND N'800'
ELSE @WorkShop
END
)
Run Code Online (Sandbox Code Playgroud)
这会返回一个错误:
Incorrect syntax near the keyword 'and'.
Run Code Online (Sandbox Code Playgroud)
所以总之如果用户传递800作为@WorkShop参数它应该返回如下内容:
Workshop IN ('800', '900')
Run Code Online (Sandbox Code Playgroud) 我正在使用python + lxml来解析spss文件。
这个主题上似乎有很多话题,但是答案并没有特别帮助我。
我遇到的答案:
- lower-case the entire input before parsing;
- if you know the complete list of tags in advance
Run Code Online (Sandbox Code Playgroud)
对我而言,这些建议将花费太多时间。
相反,我只想在必要时匹配字符串。
这是我要编辑的代码行:
xpath("//definition//variable[@name='"+tag_name+"']")
Run Code Online (Sandbox Code Playgroud)
如果tag_name是:
tag_name = "Q1top"
tag_name = "q1Top"
tag_name = "q1TOP"
etc
Run Code Online (Sandbox Code Playgroud)
我猜想某种形式的正则表达式会正常吗???
是否已为BEGIN...END块下的T-SQL语句分组定义了哪些规则?
因为当我BEGIN...END在CASE语句OR IIF语句中尝试块时,它会失败.
我需要BEGIN...END阻止,因为我想在CASE结果下执行多个操作.
SELECT
CASE @ChargePaid
WHEN 1 THEN
BEGIN
SELECT 'Paid'
END
WHEN 0 THEN
BEGIN
SELECT 'Not Paid'
END
END
Run Code Online (Sandbox Code Playgroud)
要么
SELECT IIF( @ChargePaid > 0, BEGIN SELECT 'Paid' END , BEGIN SELECT 'Not Paid' END )
Run Code Online (Sandbox Code Playgroud)
编辑:
IF @cond = 'First'
WITH CTE AS (
SELECT 'A missing' Result
UNION
SELECT 'B missing' Result
UNION
SELECT 'C missing' Result
)
SET @msg = SELECT Result …Run Code Online (Sandbox Code Playgroud) 这个解决方案有什么区别:
switch (value)
{
case 1:
{
// some code
} break;
}
Run Code Online (Sandbox Code Playgroud)
当break住宿括号而这之后:
switch (value)
{
case 1:
{
// some code
break;
}
}
Run Code Online (Sandbox Code Playgroud)
当break留在括号
val file_name="D:/folder1/folder2/filename.ext" //filename
val reg_ex = """(.*?).(\\\\w*$)""".r //regex pattern
file_name match {
case reg_ex(one , two) =>s"$two is extension"
case _ => println(" file_reg_ex none")
}
Run Code Online (Sandbox Code Playgroud)
我想使用scala regex从上面提取文件扩展名,即“ ext”,使用match&case。
我正在使用上面的正则表达式,这将导致不匹配的情况。
任何指向正则表达式教程的指针都会有所帮助。