我想更改一个字符串,以便所有大写字符变为小写,并且所有小写字符变为大写.数字字符只是被忽略.
所以"AbCdE123"成为"aBcDe123"
我想必须有一种方法来遍历String并翻转每个字符,或者可能是一些可以做到的正则表达式.
我试图用case来改变我在where子句中检查的值,但是我得到了错误:
关键字'CASE'附近的语法不正确
SQL Server 2005
select *
from table
where ((CASE when adsl_order_id like '95037%'
then select '000000'+substring(adsl_order_id,6,6)
ELSE select adsl_order_id
END)
not in (select mwebID from tmp_csv_dawis_bruger0105)
Run Code Online (Sandbox Code Playgroud) 假设我在这里有这个代码:
do_recv_loop(State) ->
receive
{do,Stuff} ->
case Stuff of
one_thing ->
do_one_thing(),
do_recv_loop(State);
another_thing ->
do_another_thing(),
do_recv_loop(State);
_ ->
im_dead_now
end
{die} -> im_dead_now;
_ -> do_recv_loop(State)
end.
Run Code Online (Sandbox Code Playgroud)
现在,理论上这是尾递归的,因为对do_recv_loop的三次调用都不需要返回任何内容.但是,erlang会认识到这是尾递归并适当优化吗?我担心嵌套结构可能使它无法识别它.
我正在使用getopt(不getops)为我的bash脚本提供处理选项和开关(long -option和short -o表单)的能力.
我希望能够捕获无效选项并处理它们,通常会回应用户应该尝试cmd --help然后退出脚本.
事实是,getopt捕获了无效选项,它本身输出一条消息,例如"getopt:invalid option - 'x'"
这是我用来设置我的getopt参数的模式:
set -- $(getopt -o $SHORT_OPTIONS -l $LONG_OPTIONS -- "$@")
Run Code Online (Sandbox Code Playgroud)
$ LONG_OPTIONS和$ SHORT_OPTIONS都是以逗号分隔的选项列表.
以下是我处理选项的方法:
while [ $# -gt 0 ]
do
case "$1" in
-h|--help)
cat <<END_HELP_OUTPUT
Help
----
Usage: ./cmd.sh
END_HELP_OUTPUT
shift;
exit
;;
--opt1)
FLAG1=true
shift
;;
--opt2)
FLAG2=true
shift
;;
--)
shift
break
;;
*)
echo "Option $1 is not a valid option."
echo "Try './cmd.sh --help for more information."
shift
exit …Run Code Online (Sandbox Code Playgroud) 我使用vb.net和Access 2010作为数据库(.accdb)
这适用于MySQL:
SELECT user_id, username, first_name, middle_name, last_name,
CASE is_enable WHEN 1 THEN 'Yes' ELSE 'No' END
FROM tbl_user_accounts ORDER BY user_id
Run Code Online (Sandbox Code Playgroud)
但是当向Access传递相同的查询时,我收到以下错误:
Unrecognized keyword WHEN.
Run Code Online (Sandbox Code Playgroud)
所以我假设CASE语句在访问方面有所不同,或者访问是否具有该功能?
PS
is_enable是布尔值
我有一部分只有在某些页面使用该布局时我才想在布局中显示.我为所有页面设置了@page_title,并认为我可以使用这样的东西:
<% case @page_title when "Log in" || "Forgot Your Password" || "Create a New Password" %><%= render :partial => "common/hello-world" -%><% end -%>
Run Code Online (Sandbox Code Playgroud)
但是,包含仅发生在标题为"登录"的页面上,而不是其他页面.是|| Case开关上不允许这样的语句?是否有不同的方法在案例开关中设置OR语句?
谢谢!
我正在尝试根据谁是付款人或收款人,将USERS表中的NAME和PHOTO加入TRANSACTIONS表.它一直告诉我找不到桌子this- 我做错了什么?
SELECT `name`,`photo`,`amount`,`comment`,
(
CASE `payer_id`
WHEN 72823 THEN `payee_id`
ELSE `payer_id`
END
) AS `this`
FROM `transactions`
RIGHT JOIN `users` ON (`users`.`id`=`this`)
WHERE `payee_id`=72823 OR `payer_id`=72823
Run Code Online (Sandbox Code Playgroud) 对于性能,哪种选项对于要更新的大型数据集更好?
使用CASE语句或个人更新查询?
案例:
UPDATE tbl_name SET field_name =
CASE
WHEN condition_1 THEN 'Blah'
WHEN condition_2 THEN 'Foo'
WHEN condition_x THEN 123
ELSE 'bar'
END AS value
Run Code Online (Sandbox Code Playgroud)
个人查询示例:
UPDATE tbl_name SET field_name = 'Blah' WHERE field_name = condition_1
UPDATE tbl_name SET field_name = 'Foo' WHERE field_name = condition_2
UPDATE tbl_name SET field_name = 123 WHERE field_name = condition_x
UPDATE tbl_name SET field_name = 'bar' WHERE field_name = condition_y
Run Code Online (Sandbox Code Playgroud)
注意:大约300,000条记录将被更新,CASE语句将有大约10,000条WHEN条件.如果使用单个查询,它也是大约10,000
我正在查询这样的数据库:
SELECT DISTINCT
CASE WHEN CreatedDate = '1900-01-01 00:00:00.000' THEN '' ELSE CreatedDate END AS CreatedDate
FROM LitHoldDetails
Run Code Online (Sandbox Code Playgroud)
lhd.CreatedDate是一个DateTime字段,不可为空.如果字段是最小日期(1/1/1900),我想显示一个空字符串,但我的CASE语句不起作用; 当该值在数据库中时,CreatedDate在我的查询中显示1900-01-01 00:00:00.000.我正在使用SQL Server 2008 R2.我究竟做错了什么?
我在Postgres 8.4 中有一个po_number类型列的表varchar.它存储带有一些特殊字符的字母数字值.我想忽略这些字符[/alpha/?/$/encoding/.]并检查列是否包含数字.如果它是一个数字,那么它需要作为数字进行类型转换,否则传递null,因为我的输出字段po_number_new是一个数字字段.
以下是示例:

我厌倦了这句话:
select
(case when regexp_replace(po_number,'[^\w],.-+\?/','') then po_number::numeric
else null
end) as po_number_new from test
Run Code Online (Sandbox Code Playgroud)
但是我为显式转换得到了一个错误:

case ×10
postgresql ×2
sql ×2
bash ×1
conditional ×1
datetime ×1
erlang ×1
finance ×1
getopt ×1
java ×1
join ×1
ms-access ×1
mysql ×1
performance ×1
php ×1
recursion ×1
regex ×1
shell ×1
sql-server ×1
sql-update ×1
string ×1
t-sql ×1
tail ×1
vb.net ×1
where-clause ×1