UPDATE crm_accounts
SET
reg = "Sim"
WHERE age >= 17
AND age <= 35
AND balance > 0.00
AND type = "Júnior";
UPDATE crm_accounts
SET
reg = "Não"
WHERE age >= 17
AND age <= 35
AND balance = 0.00
AND type = "Júnior";
UPDATE crm_accounts
我刚接触到Oacle,我正试着把我的注意力集中在似乎很容易的事情上.
假设我有这样的选择:
select * from MRCONTRACT2
WHERE CASE
WHEN ("MR_CONTRACT2"."TERM_DATE" < sysdate)
THEN 'Lapsed Contract'
WHEN ("MR_CONTRACT2"."EFF_DATE" > sysdate)
THEN 'Inactive C
在Server 2008中,如何实现以下目标-
select * from student
where
(
(if studentId is not null then studentId='x')
else
(firstName='abc' and age > 26)
)
我想要避免重写整个select子句的任何一个条件分别。
在最近的一个SQL Server2008Select项目中,我遇到了许多查询,其中有一个外部的R2,其字段名与其内部的Select语句中的字段名完全匹配。然后-在内部查询周围的最后一个括号之后-有一个where子句。
例如伪代码
Select Field1, Field2, Field3
From
(
Select Field1, Field2, Field3
From Table1
Inner Join Table2 ON . . . multiple joins . . .
) As A
Where Field 1 = SomeValue AND Field 2 <>
我收到了一张表上要做的更改的列表。我想知道如何在一个脚本中进行所有的更改.我尝试了以下方法
UPDATE tableA
SET col1 = 'somedata' WHERE col2 = 'somereference'
SET col1 = 'someotherdata' WHERE col2 = 'someotherreference'
SET col1 = 'evenmoredata' WHERE col2 = 'anotherreference'
但这不管用。我是否可以使用一个特定的语法来实
我经常有像下面这样的代码行:
UPDATE my_table SET name = 'x' WHERE Original = 'a'
UPDATE my_table SET name = 'y' WHERE Original = 'b'
UPDATE my_table SET name = 'z' WHERE Original = 'c'
UPDATE my_table SET name = 'k' WHERE Original =
我希望基于WHERE子句选择记录,并在结果中包含一列,该列说明为什么每个记录都传递WHERE子句的筛选器。
有点像
SELECT name, location, networth, reason
FROM aTable
WHERE location = "France" OR networth > "100"
可能会回来
name|location|networth|reason --reason is the part I need help with
-----------------------------
Joe |France |0
在SAS中
我有一个proc-sql步骤,用来创建宏变量来执行一些列表处理。
我遇到了一个令人困惑的步骤,使用case语句而不是where语句会导致结果数据集的第一行是空字符串('')
这两个表中的任何一个字段中都没有包含空字符串。
以下是两个示例SQL步骤,为了简单起见,去掉了所有的宏业务:
create table test as
select distinct
case
when brand in (select distinct core_brand from new_tv.co
我目前正在创建一个基于参数的报告,并希望在where子句中使用case when语句。 Declare @TPS Varchar(152) = 'Include'
And (CASE WHEN @TPS = 'Include' THEN (TPS is null or (TPS = '')) ELSE (TPS IS NOT NULL) END) 上面是我正在尝试做的示例。我不能使用begin和end,因为我希望在我的语句中有7个case whens,这样SSRS中的用户就可以将值传递到报告中,这将是许多组合。 我希望能够传递一个参数,进
我想在where子句中使用case语句,但在下面的查询中遇到错误。
where
(r.WeekId=@WeekId or @WeekId is null) and
(ShiftId=@ShiftId or @ShiftId is null)
and (placeid=@PlaceId or @PlaceId is null)
and (r.StatusId=3)
AND
CASE WHEN @day = 1 THEN ((firstday=@time and (allocateddays is null or NOT (AllocatedDays LIKE '%
我的网站是一种字典。当搜索一个关键字时,我想同时查看“word”和“meaning”列,并显示所有匹配单词或含义的内容。
select count(id) words where word like @keyword or meaning like @keyword
select * from words where word like @keyword or meaning like @keyword order by word
但我想先显示匹配的单词,然后显示匹配的含义。顺序不正确
当我将它们分开时:
select count(id) words where word like @key
在SELECT语句中,我更改字段"cat“和字段"owner”。在这个选择的末尾,在WHER-子句中,我指的是‘所有者’和'cat';使用的值是原始值,而我想要原始‘所有者’,但是更改了‘cat’-值。声明是
SELECT *,CASE WHEN persoon=2 THEN catlist ELSE cat END AS cat,CASE WHEN persoon=2 THEN 'ikke' ELSE owner END AS owner FROM object LEFT JOIN list ON (id=imgref AND persoon=
我需要一个临时解决方案来解决我造成的问题。本质上,我想计算两个值,但根据条件的结果使用不同的方法。
select userReturnval, userregisterid, OtherValue
FROM
(
(SELECT otherValue
FROM...
) as tblO --unrelated table
,
(
if (select count(userregisterid) from table1 where site =@siteID and userid=@userID) >0
SELECT userReturnv
我对UPDATE语句有一个问题:
UPDATE tmp_gelbe_seten SET haus_nr_von = ubstring(hausnummer,'([0-9]*)') WHERE hausnummer like '%-%';
UPDATE tmp_gelbe_seten SET haus_nr_bis = substring(hausnummer,'-([0-9]*)') WHERE hausnummer like '%-%';
UPDATE tmp_gelbe_seten SET haus_nr_von =
我正在运行一个查询,以拉回我们系统中的数据,并将其与一个单独的发票表进行比较,这是有效的。但是,现在我只需要为大于我们系统中输入的日期的发票拉取金额(体积)。
下面是我的问题:
SELECT
MIN(c.created_at) AS date,
c.meta_account_Id,
c.organization_Id,
c.user_id,
c.meta_distributorId,
c.meta_accountName,
CASE
WHEN sum(s.volumece) IS NULL THEN 0
ELSE sum(s.volumece)
END AS ce
嗨,如何使这个结果查询:
📷
对此:
📷
我有这个代码,我知道它仍然很牵强:
select
max(case subcod when 'DISABILITY' then A end) as disability,
max(case subcod when 'DISMEMBERMENT' then B end) as dismemberment,
max(case subcod when 'MEDICAL' then C end) as medical,
max(case subcod
我有一个对结果集使用bit_or的mysql查询。当没有结果集时,bit_or函数返回0(根据mysql文档,这是正确的)。
例如:
select n from t1 where a=1;
不返回任何行。
select bit_or(n) from t1 where a=1;
返回0
我需要强制最后一个查询不返回bit_or查询的任何结果,例如(在伪代码中,因为我不知道正确的调用):
select bit_or(n) unless 0 from t1 where a=1;
有人知道我是怎么做到的吗?(澄清一下,我需要一个外部程序的"no result on 0“返回值,不幸的是,这个返
我使用它来创建一个视图,该视图包含表中的所有列,加上一个新列,该列的值基于另外两个列的计算结果。我可以在这里添加一栏:
CREATE VIEW `calculated_full` AS
SELECT *,
`planned`-`actual_widget` AS `widget_delta` FROM `joined_table` where product = "widgets"
基本上,这是说在这两列之间执行这种计算,但前提是第三列(product)具有一定的值。这个很好用。
但是,我需要这样做,以便向视图中添加另一个计算列,只有当第三列(product)具有不同的值时,
如何编写查询
select MC_HOST_ADDRESS, LOCATION_TYPE , MC_LOCATION, MSG, STREET/SUBLOCATION, DURATION/( CLOSED_TIME - MC_ARRIVAL_TIME)
if ( MC_ARRIVAL_TIME < Start Date ) then use Start Date else use End Date
where
MC_Object = ‘Camera’ AND
MC_Parameter= ‘CameraFeed’ AND
(MC_ARRIVAL_TIME betwee
我有一个使用表的复合主键(Key1,Key2)的SQL UPDATE语句,如下所示:
UPDATE TableName SET FieldName = CASE
WHEN (Key1=389 AND Key2=5594091315209354374) THEN 1320243147187
WHEN (Key1=397 AND Key2=8686441440518828409) THEN 1320243147562
WHEN (Key1=389 AND Key2=5717973625907258381) THEN 1320243147182
....
WHEN (Key1=394 AN
在我的SQL查询中,我有一个CASE子句。如何在where状态中使用来自情况的变量名称。这是我的查询
SElECT
a,
b,
CASE
WHEN AVG(CAST([x] as DECIMAL(9,2))) = 0
THEN 0
ELSE AVG(CAST([y] as DECIMAL(9,2))) / AVG(CAST([x] as DECIMAL(9,2)))
END AS z
FROM magic_table
WHERE z > 0
GROUP BY a,b
在这里,我不能抓住z在w
这个问题和标题一样简单,但这里有一个逻辑。以下是我的代码
CREATE TABLE `inf_brand_images` (
`id` bigint(99) NOT NULL AUTO_INCREMENT,
`brand` varchar(255) NOT NULL,
`thumb` text NOT NULL,
`is_active` int(2) NOT NULL DEFAULT '1',
`cmp_brand` varchar(1024) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6458 DE
SELECT *
FROM T1 INNER JOIN T2 ON T1.C1 = T2.C1
WHERE
( (T1.C3-T2.C3<>0 )
And (CASE WHEN T1.C4 <> T2.C4 THEN 'Changed' END) )
OR
( (T1.C5-T2.C5<>0 )
And (T1.C6-T2.C6<>0) )
这给了我一个错误->
一种非布尔型的表达式,它是在一个条件被期望的上下文中指定的,接近')‘。
这句话怎么了??
CREATE TABLE case_in_where
(
id integer PRIMARY KEY,
name text NOT NULL
);
INSERT INTO case_in_where (id, name)
VALUES (1, 'foo'), (2, 'bar'), (3, 'baz');
我想过滤数据,但namevalue正在处理order by not where条件如何解决这个问题?你可以在这里试试
SELECT
id, name,
CASE
WHEN
此sql运行正常: DECLARE @check bit = 1
SELECT * FROM [TABLE]
WHERE [STATUS] = 1
AND [TYPE] =
CASE WHEN @check = 0 THEN 'typeA'
ELSE 'typeB'
END 但是当我尝试使用带有'OR‘的表达式时,我得到了错误: DECLARE @check bit = 1
SELECT * FROM [TABLE]
WHERE [STATUS] = 1
AND [TYPE] =
CASE WHEN @che
我正在尝试从表中提取数据,其中我在WHERE子句中使用了CASE条件,而当前我正在使用以下查询:-
SELECT count(enq_id) AS total, sum(purchase_amount) AS purchase
FROM temp_stock
WHERE purchase_date <> '0000-00-00'
AND purchase_date < '2012-08-01'
AND (
STATUS = 'Sold'
OR STATUS = 'In Stock'
OR STATUS =
我试图在陈述时使用这个案例,但它似乎不起作用。有什么改变,我可以做,以使它的工作,或它完全错了?
"CASE
WHEN (a != '1' AND b != '1' AND c != '1' AND d != '1' AND e != '1') WHERE id = :id
THEN UPDATE table SET f = 0 WHERE f = 1
WHEN (a != '1' AND b != '1' AND c != '1&
我有一个带有参数@Region的SQL Server2012查询。有一个WHERE子句,我想根据@Region值设置它的值。下面是我尝试使用的代码 case
when @Region = 'SW'
then Transact.busloc_id in (3, 7, 11)
else Transact.busloc_id in (1, 5, 7)
end
我试图根据变量的值添加一个CASE语句:
WHERE DTH.PointPerson LIKE @userParam
AND ActivityDate >= @startDateParam
AND ActivityDate <= @endDateParam
--new section below
AND CASE (@orgTeamPK)
WHEN '%' THEN
(USR.[OrganizationalTeamId] LIKE @orgTeamPK OR USR.[OrganizationalTeamId] I
我需要在select语句的where子句中放入一个'if‘。我正在搜索两个日期,并希望提取这两个日期之间的数据。我需要检查年份是否不同,如果月份不同,然后是日。我当前的select语句是:
select count(*)
from SOMT_Development.Board_Metrics_Data bmd
where bmd.Metric_Year >= startYear and bmd.Metric_Year <= endYear and
Metric_Month >= startMonth and Metric_Month <= en
在我的查询中有一个带混叠的case语句,im试图用group-by子句显示它,但是我继续得到错误“无效列名(case语句混叠)”。
代码
Select column 1,
column 2,
column 3,
Case When .... then ...
When .... then ...
When .... then ...
else ... as X
From table1,
table 2,
table 3
where condition 1,
SELECT *
FROM (
SELECT P.PC_ID, PC.PC, P.BLOK_ID, B.BLOK, B.ID_MATERIAL, M.MATERIAL, M.NO_MATERIAL, P.START_DTTM, TO_CHAR(P.START_DTTM,'yyyy-mm-dd') DATE_PERENCANAAN
FROM UTSG_PERENCANAAN P
INNER JOIN UTSG_PC PC
ON P.PC_
不是运行两个单独的查询来替换我的innerSku表中的outerSku和parts字段,而是有一种方法在不影响性能的情况下在一个查询中这样做吗?
UPDATE
parts
SET
innerSku = @newSku
WHERE
innerSku = @oldSku;
UPDATE
parts
SET
outerSku = @newSku
WHERE
outerSku = @oldSku;
如果我有一个SQL查询,它对三个表执行存在性检查:
IF EXISTS(SELECT [KEY] FROM [Table1] WHERE [KEY]='Key1')
AND EXISTS(SELECT [KEY] FROM [Table2] WHERE [KEY]='Key2')
AND EXISTS(SELECT [KEY] FROM [Table3] WHERE [KEY]='Key3')
Server是否支持条件语句的“早期退出”,例如,如果初始存在检查是否为false,则剩下的两个存在检查不是executed?Assumi
SELECT Pod_Code, COUNT(*)
FROM [DBHFT 201314 Trust SLAM Model PID].dbo.D_Actual_Activity_HRG A
INNER JOIN dbo.D_HrgCodes B ON A.HRG_ID = B.Hrg_ID
INNER JOIN dbo.D_PodAll C ON A.Pod_ID = C.Pod_ID
INNER JOIN dbo.D_SpecCodes D On A.Spec_ID = D.Spec_ID
INNER JOIN dbo.D_GppCodes E ON A.Gpp_ID = E.Gp
我有一个惯例,要求将job_id和department_id展示给各部门10,20,50,50并按具体顺序订购为10,50,20
我的选择语句
select job_id,department_id
from employees
INTERSECT
select job_id,department_id
from employees
where department_id IN (10,20,50)
ORDER BY 2,CASE department_id WHEN 10 then 1
WHEN 50 then 2
我正在尝试创建一个具有多个CASE语句的存储过程,我有以下存储过程:
BEGIN
CASE @olds
WHEN 'emp' THEN
CASE @news
WHEN 'loc' THEN
UPDATE equipos SET pe=pe-1,pg=pg+1 WHERE id=@eqloc;
UPDATE equipos SET pe=pe-1,pp=pp+1 WHERE id=@eqvis;
UPDATE partidos SET `eqgan`=@news WHERE id=@mst;
我希望根据int列的值输出一个字符串。查询在下面,language_id是一个int列。
select email, language_id from tgf_mobileuser where email is not null;
如果language_id是0,我想做的是获得'English‘,如果language_id是1,则得到日语。
任何帮助都是非常感谢的。
如果变量是某个值,是否可以省略WHERE?下面这句话不管用,我正在努力寻找答案;
DECLARE @rMonth int, @rYear int, @sID int
SET @rMonth = 0;
SET @rYear = 0;
SET @sID= 0;
SELECT
TCS.bStatus AS jStatus, TCS.ID, TCS.sID, TCS.insDate, TCS.statusLabel, TCS.cID
FROM
TCS
CASE WHEN @rMonth > 0 THEN
WHERE month(insDate)