如何在sql select语句中创建一个大写或小写的字段?
例:
从Person中选择firstname
如何使名字始终返回大写,同样总是返回小写?
这是一个演示查询,请注意它非常简单,仅在base_price为0的情况下获取,而且,它仍然选择条件3:
SELECT
CASE course_enrollment_settings.base_price
WHEN course_enrollment_settings.base_price = 0 THEN 1
WHEN course_enrollment_settings.base_price<101 THEN 2
WHEN course_enrollment_settings.base_price>100 AND
course_enrollment_settings.base_price<201 THEN 3
ELSE 6
END AS 'calc_base_price',
course_enrollment_settings.base_price
FROM
course_enrollment_settings
WHERE course_enrollment_settings.base_price = 0
Run Code Online (Sandbox Code Playgroud)
base_price
是 decimal(8,0)
在我的数据库上运行时,我得到:
3 0
3 0
3 0
3 0
3 0
我有一个名为' tbl_transaction ' 的数据库表,其定义如下:
id INT(11) Primary Key
action_type ENUM('Expense', 'Income')
action_heading VARCHAR (255)
action_amount FLOAT
Run Code Online (Sandbox Code Playgroud)
我想生成两列:Income Amt
和Expense Amt
.
是否可以仅使用SQL查询有条件地填充列,以便输出显示在正确的列中,具体取决于它是Expense项还是Income项?
例如:
ID Heading Income Amt Expense Amt
1 ABC 1000 -
2 XYZ - 2000
Run Code Online (Sandbox Code Playgroud)
我正在使用MySQL作为数据库.我正在尝试使用CASE语句来完成此任务.
干杯!
是否可以执行以下操作:
IF [a] = 1234 THEN JOIN ON TableA
ELSE JOIN ON TableB
Run Code Online (Sandbox Code Playgroud)
如果是这样,那么正确的语法是什么?
鉴于这种方法,这是否代表了一些令人震惊的风格或语义失误:
private double translateSlider(int sliderVal) {
switch (sliderVal) {
case 0:
return 1.0;
case 1:
return .9;
case 2:
return .8;
case 3:
return .7;
case 4:
return .6;
default:
return 1.0;
}
}
Run Code Online (Sandbox Code Playgroud)
这显然不符合这里的Java教程.
然而,它清晰,简洁,到目前为止已经完全符合我的需要.是否有令人信服的实用理由创建局部变量,在每种情况下为其赋值,为每个案例添加一个中断并在方法结束时返回值?
为什么这个查询不起作用?:(我试图替换嵌套的IF语句"... SET lkey = IF(lkey> = 11,lkey - 5,IF(lkey> 5,lkey + 2,lkey))"
UPDATE pages
SET lkey = CASE lkey WHEN lkey >= 11 THEN
lkey - 5
ELSE
CASE lkey WHEN lkey > 5 THEN
lkey + 2
ELSE
lkey
END
END,
rkey = CASE lkey WHEN lkey >= 11 THEN
rkey - 5
ELSE
CASE rkey WHEN rkey < 11 THEN
rkey + 2
ELSE
rkey
END
END
WHERE rkey > 5 AND
lkey < 12;
Run Code Online (Sandbox Code Playgroud) 我有另一种情况.我有一个包含值的变量('Weekly','Monthly','Quarterly','Annual'),我有另一个变量,它保存从1到10的值.
switch ($var2) {
case 1:
$var3 = 'Weekly';
break;
case 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4:
$var3 = 'Quarterly';
break;
case 5:
$var3 = 'Quarterly';
break;
// etc.
}
Run Code Online (Sandbox Code Playgroud)
它不漂亮,因为我的代码有很多重复.我想要的是:
switch ($var2) {
case 1, 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4, 5:
$var3 = 'Quarterly';
break;
}
Run Code Online (Sandbox Code Playgroud)
我怎么能在PHP中做到这一点?先感谢您.对不起我的英语不好.
从程序员的角度来看,shell脚本只是另一种编程语言,人们必须学习并遵守语言规则.但是,我必须承认,这种语法是我在一种常用语言中见过的最奇怪的风格.shell是否采用了它来自的较旧语言的语法?语法中是否有特殊含义/含义?
作为一个例子,这里是我从SO上的另一篇文章中获取的一个小片段
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
check_status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
Run Code Online (Sandbox Code Playgroud)
看看这个,首先我可以看到case
结束esac
,这是它的反转形式(如if
结束fi
).其次,我理解每个案例后面跟着一个)
.很公平,但为什么我;
在每个声明的末尾都需要两个呢?我还会说)
没有伴随的(
是丑陋的.
我正在寻找有关语言历史方面的更多信息,但我也是出于技术原因而开放.
是否可以在MySQL 语句中组合CASE
语句和LIKE
运算符SELECT
?
例如,我试图查询一个数据库,该数据库以两种格式之一存储单个列中的数据(这很糟糕并且伤害了我的头脑,但我无法更改数据,所以它就是它.).所以有时列numbers
会有像"6901xxxxxxxx"这样的数据,有时会有像"91xxxxxxxxxxx"这样的数据.
我想做的是像这样查询数据 -
SELECT
CASE digits
WHEN LIKE "6901%" THEN substr(digits,4)
WHEN LIKE "91%" THEN substr(digits,2)
END as "digits",
FROM raw
Run Code Online (Sandbox Code Playgroud)
这显然不起作用,但我希望它可能.