我知道SQL的CASE语法如下:
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
然而,我不明白它是如何工作的,可能是因为我把它看作是一条if语句。
例如,如果我在表user_role中有一个字段,其中包含“经理”、“兼职”等名称,我如何根据角色生成具有不同数字的字段role_order。在本例中,"if user_role = 'Manager‘the
我们计算的收入差异是与2012年的Q1 - Q4和2013年的Q1 - Q4相比的百分比变化。然后我们需要计算正值的总和,负值的总和,以及不变的总和。所有数据都在一个表中。这需要完全在SQL中实现。
我已经成功地获得了2012年的结果,然后是2013年的结果,但似乎无法让它们以相同的记录返回。
SELECT ID_FIELD, sum( Receipts_Total )
FROM QR_Dom
WHERE quarter LIKE '%2012%'
GROUP BY ID_FIELD;
和
SELECT ID_FIELD, sum( Receipts_Total )
F
我是SQl的新手,我试着自己学习。
我正在学习if和the语句在SQL中的用法。
下面是我试图使用的数据,在下表中的if或let语句中,我希望使用sql查询根据年龄更新注释,如果年龄在22岁到25岁之间,则注释“未毕业”。
Age: 26 to 27, comments " post graduate"
Age: 28 to 30, comments "working and single"
Age: 31 to 33, comments " middle level manager and married"
表名:人员
personid la
如何在PL/SQL或SQL中的动态SQL语句中找到错误的位置?
在SQL*Plus中,我看到错误的位置,例如,无效的SQL语句:
SYS@orcl> SELECT
2 X
3 FROM
4 TABLEX
5 /
TABLEX
*
ERROR at line 4:
ORA-00942: table or view does not exist
SQL*Plus显示带有行号的错误,并用星号打印和标记该错误所在的行。
转换为动态SQL后,我可以获得错误代码(SQLCODE)和错误消息(SQLERRM):
SYS@o
嗨,我有一个sql语句,它按降序从表中返回行,我要排序的列是requestStatus。requestStatus可以是3个待决、批准和拒绝的值。我想修改sql,如果可能的话,通过挂起,然后批准,然后拒绝。我的sql语句在下面。我使用的是asp.net剃须刀视图引擎。谁能给我指明正确的方向?
var dbCommand2 = "SELECT * FROM LeaveRequests WHERE email = @0 ORDER BY WHERE requestStatus DESC";
var rows1 = db.Query(dbCommand2, theUser
在T-SQL中,我有一个简单但非常重要的概念要讲清楚。
我正在编写大量针对表的T-SQL查询,其中包含大量聚合和分组依据。
现在,在我的T-SQL查询的SELECT子句中,我有一个CASE-WHEN语句。如下所示:
语句1:
SELECT X, Y, Z,
A = CASE
WHEN P = 1 THEN B
ELSE Q
END,
SUM(Sales)
FROM mytable
GROUP BY
X, Y, Z,
CASE
WHEN P = 1 THEN B
ELSE Q
END
现在可以将语句1写成语句2了吗?
语句
假设我有一个表users,我想将foo字段设置为用于id in (1,5,10)的用户的"bar"和用于id in (3,8,15)的用户的"qux",并且通常我可能有更多的值和更多的i组来匹配每个值。
目前(在我选择的脚本语言中),我正在遍历foo的值对和in组,如下面(伪代码)
for(val, ids) in my_array
execute_sql("update users set foo = '#{val}' where id in (#{ids.join(',')})")
end
我是否可以在一个
我对SQL很陌生,如果条件为真,我希望执行一条语句,如果条件为false,则执行另一条语句。
Server 2012查询
select
if s.SpecialInsttPlan = 'No'
BEGIN
(s.TotalBill - s.Advance) / s.Installments as Installment
else
'Special' as Installment
END
from
SalesInvoice s
left join
Installment
我尝试将不同的值返回给子报表参数,基于它是否可见下面的代码工作,
=iif ( true, Fields!PatientID.Value,”junk so it sql string will not work” )
现在,我尝试将其更改为以下值,以便返回不同的值,因此它是sql
=iif ( commentsub!hidden,”junk so it sql string will not work” )
这不起作用。有没有办法做到这一点?我也试过了
=iif ( commentsub!visible,”junk so it sql string will not work” )
和
=ii
我有一张桌子:
+--------------+-----------------------------+----------------+
| Username | Message | Status |
+--------------+-----------------------------+----------------+
| jamesbond | I need some help | SendingOK |
| jamesbond | I need some help
在查看我的控制器中的一些代码时,我发现在查询上有一个奇怪的bug,基本上是关于case when语句:
数据库内容:
列:
category : client or case category
type : title or content
mainpage 1 or 0 (true or false)
值:
0;0;1
对应正常输出:
Case category;title;yes
当前输出:
Client;Content;No
PHQL:
SELECT content.id,
(CASE content WHEN content.category = 0 THEN 'Case ca
我的一个朋友发现了这一点,我对它进行了测试,并在中进行了确认。如果您找到一个列是INT,您可以查询:
select *
from table
where foo = 1AND 1=1; /* works no problem */
注意,在1和AND之间没有空格。我们想知道为什么这不是SQL的问题。这是已知的SQL行为吗?
我正在尝试将access 2013 IIF()语句转换为Server 2008 case语句,但我得到的错误是
Msg 102,第15级,状态1,第5线
在“)”附近不正确的语法。
我确信这源于我的不正确的转换,但是我必须做些什么来正确地转换这个语法呢?
访问
((val1*mk)+val1)+IIf(ffsaa="0",0,6) AS CC
SQL尝试
((val1*mk)+val1)+case when ffsaa=0 then 0 else 6 end) AS CC
大家好,我是SQL的新手,我想用SQL执行以下操作。我已经在水晶中做到了,但不知道是否可以在SQl中完成。下面是我在Crystal中如何做到这一点在SQL中可以做到:
{@Adjust Code}和{@Adjust Code WH}是两个变量,如果null将工作放入字段中,则会检查它们是否为空值
下面的代码可以放在select语句中吗:
if {RV_CLAIM_DETAILS.NET} <> 0
then {RV_CLAIM_DETAILS.NET}
else if ({@Adjust Code} in ["#C", "A2",
嗨,我被困在下面的查询中,我已经为访问和正常工作编写了这个查询。但是当我在SQL 2005中运行它时,它会给我带来错误(不正确的语法靠近关键字'IS')。
我也经历过类似的问题,但我的问题并没有得到解决。
以下是Access查询。
select iif(ISBN IS Null,"1","0") as OK from products
请提供SQL 2005版本。
这可能是一个基本的查询,但我对sql并不熟悉。
提前谢谢。
我的公司有一些表需要从查询中定期更新。通常,我会将查询转换为视图,但目标模式不具备普遍的select访问权限,并且it部门通常需要一段时间来帮助我们解决这一问题,我们需要快速设置这些表。
因此,我创建了一个读取.sql文件的python脚本,将其解析为单独的语句,这些语句通常涉及创建易失性表,然后通过sqlalchemy执行这些语句。最后,python程序生成一条MERGE语句,根据.sql文件中的最终易失性表更新目标表。python看起来像这样:
import sys
import re
import time
from os.path import dirname
import sqla
我正在努力区分国内客户和国际客户。我可以用SQL做,但我需要用DB2做。在SQL中,我会说。 Select
DCSCRY,
case when ocrh.dcscry = ' ' then 'BLANK' else case when ocrh.dcscry <> 'US ' then 'Y' else '' end
end as INTER
from ocrh 结果 DCSCRY INTER
US
US
CA Y
CA Y 在DB2中有什么建议吗?
我使用springboot和mybati3.4.4及Mysql 5.7,在mybatis中,我需要将sql param ${}更改为#{},我的sql如下所示:
select * from t1 as record
<if test="orderBy != null and sort != null">
order by
vr.${orderBy} ${sort}
</if>
orderBy是一个需要排序的字段,而sort是desc或asc。
为了防止${}注入,我需要将#{}改为#{},所以我尝试了;
select * from t1 as recor
我不得不微调了一堆存储过程,并得到了一个包含大量IF ELSE blocks的存储过程--它们有带有事务的insert语句。因此,我使用case对它们进行建模,发现我得到了语法错误,尝试下面的语句(一个正在执行的简单示例),但是您肯定会理解的。
DECLARE @rowcount int
SELECT @rowcount = -1
CASE WHEN @rowcount = -1 THEN
select 'I WON THE RACE'
WHEN '2'
SELECT 'WHAT A LOSER'
END
每个案例都有多个
我有一个表(table1),它有2列、id、和、name、,下面是表中的数据。
--输入表--
id name
1 | ABC
2 | XYZ
3 | DEF
我想要写SQL,这将给输出,如下所述
输出列为id、col1、col2和col3及以下是列中所期望的值。
1真假假
2假真假
3假假
现在,我想根据上面的输出编写一个SQL。
我使用用SQL编写的CASE语句编写了一个SQL,但是我知道应该有更好的方法来编写这个SQL并获得输出。
我的SQL:
select id, CASE WHEN NAME ='XYZ' THEN 'TR
我正在针对Oracle 10g数据库编写SQL语句。我想得到一个有三个不同条件的域的和。我可以用一个查询来完成这个任务吗?
这是我想要的伪SQL:
SELECT SUM(CP) AS CPTotal,
(SUM(CP) FROM tasks WHERE Code='P') AS CPProd,
(SUM(CP) FROM tasks WHERE Code='S') AS CPSupp
FROM tasks;
我在表"werknemer“中添加了一个新列,该列名为"salaris_schaal”。
我想在那一栏中有一个int,可以说明雇员(“狼人”)的薪级是什么。"Salaris“是雇员的工资。
薪级表有最低工资和最高工资,我在网上帮助下完成了这个查询(搜索)。我认为这是最接近我能得到的atm,我尝试了不同的查询,但这些没有工作。
UPDATE werknemer
SET salaris_schaal =
CASE
WHEN salaris > 700 and salaris < 1200
THEN salaris_
我想将一个变量名连接到我的SQL查询中,用于order by,如下所示。 我基本上不想使用动态sql、exec和sp_executesql。 DECLARE @Order VARCHAR(1000) SET @Order = 'CO_ID DESC‘print @Order select * From contact where co_username= 'sandeepshm’order by @Order+@Order select * From contact where co_username= 'sandeepshm‘order by CO_ID DESC