在SAS中
我有一个proc-sql步骤,用来创建宏变量来执行一些列表处理。
我遇到了一个令人困惑的步骤,使用case语句而不是where语句会导致结果数据集的第一行是空字符串('')
这两个表中的任何一个字段中都没有包含空字符串。
以下是两个示例SQL步骤,为了简单起见,去掉了所有的宏业务:
create table test as
select distinct
case
when brand in (select distinct core_brand from new_tv.co
我正在尝试执行sql查询,并动态地构建where条件,具体取决于参数是否为null。我有这样的事情:
SELECT tblOrder.ProdOrder, tblOrder.Customer FROM tblOrder
CASE WHEN @OrderId IS NOT NULL
THEN
WHERE tblOrder.OrderId = @OrderId
ELSE
END
CASE WHEN @OrderCustomer IS NOT NULL
THEN
AND tblOrder.OrderCustomer = @OrderCustomer
ELSE
END
END
这不起作用,但是这只
我试图使用count和WHERE子句来计算列中的空数。当Attr_620_Lookup的表中有空时,此查询的结果将返回0的计数。我可以数数所有的行并减去不为空。但是有办法直接计算空数吗?
SELECT Attr_616 AS Location, COUNT(Attr_620_Lookup)
FROM dbo.AttributesDenormalized AS ad
WHERE (Attr_620_Lookup IS NULL)
GROUP BY Attr_616
我使用它来创建一个视图,该视图包含表中的所有列,加上一个新列,该列的值基于另外两个列的计算结果。我可以在这里添加一栏:
CREATE VIEW `calculated_full` AS
SELECT *,
`planned`-`actual_widget` AS `widget_delta` FROM `joined_table` where product = "widgets"
基本上,这是说在这两列之间执行这种计算,但前提是第三列(product)具有一定的值。这个很好用。
但是,我需要这样做,以便向视图中添加另一个计算列,只有当第三列(product)具有不同的值时,
我不确定大小写是否真正需要在这里使用,但基本上我要做的是应用"WHERE ba.batchid = @batchId“,但前提是@batchId不是空的。
基本上是这样的,但是这在ba.batchid = '2‘区域('2’是@batchId的结果)周围会出现一个错误。
CASE WHEN '2' != '' THEN ba.batchid = '2' ELSE null END
我想使用一个CASE表达式更新一个表,但是我得到了一个错误,但是我没有设置空值:
无法将值NULL插入“column 2”列、表“表1”中;列不允许空值。更新失败。
我的代码:
UPDATE [Table 1]
SET [Column1] = '2',
[Column2] = CASE
WHEN [Column3] = 'A' THEN '1'
WHEN [Column3] = 'B' THEN '2'
我正在试图在IN子句中写一个case语句。
Channel列包含三个值ACT、REN、REP。我希望选择多个值,但是我只使用一个值就可以得到结果。
select * from tbl
WHERE tbl.Channel IN (select
case when @ACT =1 then 'ACT'
when @REN =1 then 'REN'
我有一个对结果集使用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“返回值,不幸的是,这个返
在选择值时,我使用复杂的情况。我想在WHERE子句中使用这个结果,但Postgres说列'd‘不存在。
SELECT id, name, case when complex_with_subqueries_and_multiple_when END AS d
FROM table t WHERE d IS NOT NULL
LIMIT 100, OFFSET 100;
然后我想我可以这样用它:
select * from (
SELECT id, name, case when complex_with_subqueries_and_multiple_when END AS d
当我试图回答时,我发现了一个我认为是错误的语法
select * from table where area and block
我尝试了一个sqlFiddle,发现它是有效的。
但我一直找不到它是如何工作的(我找到的所有文档都包括操作符).
在sql花式上做了一些尝试
对于可为空的int字段,它似乎“消除”null和0的结果,对于不可空的int字段,则为0结果。
它还能保存varchar值..。它包含int值(但不包含'0')!
即使我不认为使用这种语法是个好主意,我也希望有人能解释一下这是如何管理的.
嗨,如何使这个结果查询:
📷
对此:
📷
我有这个代码,我知道它仍然很牵强:
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
有没有一种干净的方法来限制SQLite3 SELECT语句的命中数?
例如,我可能会用SELECT * FROM myTable WHERE name='Smith';查询,并意识到我可能会遇到数以千计的点击。我希望SQLite3告诉我它遇到的前10个查询,然后终止查询。我该怎么做呢?
如果SQLite3不能立即提供此功能,那么在SQLite3源代码中有什么我可以编辑的东西可以用来重新构建吗?
假设我所处的环境中只有一个线程,并且我希望在合理的时间内恢复控制。
我正在编写一个查询,它将进入一些golang后端代码,以自动获取我们拥有的一些计费字段。基本上有一个标准的费用和一个减少的费用。有一个表格,这些费用,身份证号码,和生效日期。
如果ID号在列表中,我只想为该ID号选择费用。如果ID号不在列表中,我希望选择标准费用。
在我们得到的陈述中,我们得到了MemberID。MemberID与CorporateID (CorpID)连接到CorporateLinks表中。如果MemberID根本不在CorporateLinks表中,我想选择标准费用。
以下是我的疑问:
SELECT
CASE
WHEN cl.CorpID IN (SELECT CorpID
我有两个表,一个表包含付款周期,另一个表包含需要根据每年、每月支付的东西。
我是这样查询数据库的:
SELECT
L.UserID,
U.Username,
L.CostPerCycle,
CT.CycleType,
CASE L.CycleTypeID
WHEN L.CycleTypeID = 1 THEN L.CostPerCycle * 12
WHEN L.CycleTypeID = 2 THEN L.CostPerCycle * 3
WHEN L.CycleTypeID = 3 THEN L.Cos
我在执行这句话时遇到了困难。
我在这里试图实现的是,我的结果将与使用参数的条件排序。
例如,我希望按升序对userName进行排序,因此,在我的web应用程序编码中,我有一个参数@条件,当它读取'userName‘时,下面的sql语句将执行。
错误是:
Msg 206, Level 16, State 2, Line 1
Operand type clash: int is incompatible with date
Msg 206, Level 16, State 2, Line 1
Operand type clash: int is incompatible with dat
我正在尝试使用sql语句来检查函数中的参数是否为空。如果它是null,它不应该做其他的事情,但是如果它不是null,它应该检查来自一列的某个值是否出现在另一列中。
所以应该是这样的
SELECT * FROM TableA
WHERE User IN (SELECT User FROM TableB WHERE Condition = @ParameterA)
AND File IN (SELECT File FROM TableB WHERE Condition = @ParameterB)
所以,我现在要做的是检查@ParameterA是否为空。如果是,则不应执行User IN [..
当查询不返回所选列之一的任何结果时,我试图显示默认值“Other”。我给你举个例子。
此查询返回os(agent) SO的空值(在第一行中):
select country, os(agent) SO, count(*) from clicks_data
where country is not null and os(agent) is not null
group by country, os(agent);
输出:
ZA 4
ZA Android 4
ZA Mac 8
ZA Windows 5
相反,我想得到这样的结果:
ZA Others
我在oracle 10g中有以下查询:
select IN_OUT_DATE, STORE_NO, ART_NO, SUPPL_NO, SUPPL_TYPE, QTY from oltp_transactions_hist where art_no = :art_no and store_no = :store_no and in_out_type<50 and in_out_date between :X and :Y
我想在where子句中添加以下表达式,以防变量:all为零:case WHEN :all = 0 OLD_NN_BUY_PRICE_BEF<
我有一个查询,如果日期范围匹配,则返回值。如果不匹配,则不返回任何内容。
SELECT start, end
FROM (`taxemployee`)
LEFT JOIN `project_staff_assignment` ON `project_staff_assignment`.`taxemployee_id` = `taxemployee`.`id`
WHERE (start >= '2014-09-01' AND end <= '2014-09-15')
OR (end >= '2014-09-15'
我想要进行一个查询,在表中搜索城市名称,结果是以字母b开头的城市名称,然后是包含字母b的城市名称。
select *
from tb_city
where name like 'b%' or name like '%b%'
我怎么能首先得到以字母b开头的城市,然后得到包含字母b的城市?我得到的结果好坏参半
这里是Scala noob;我一直不明白为什么这个Anorm SQL调用得不到结果。当我运行SQL调试输出时,它会返回一个很好的结果,但是当运行代码时,我最终得到一个空的List()。
我的RowParser有问题吗?为什么我在调试输出中看到了良好的SQL,但我的result val却没有收集到它?
我的SQL解析器中是否遗漏了一些东西来正确地将结果行映射到.as()?当我删除最后一行result时,我的result val的计算结果是一个单位,这绝对是可疑的。
// Case class - SQL results rows go into List of these
case class
我希望基于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
下面的SQL提供了我想要的正确结果,但是数据输出也包含空行,这是我不想要的。
Select
v.ID
,max(case when v.param = 'param_1' then v.pValue end) as param1
,max(case when v.param = 'param_2' then v.pValue end) as param2
,max(case when v.param = 'param_3' then v.pValue end) as param3
from
datasource v
Group by v.ID
例
我有一个update语句,其中每个部分分别生成。理想的情况是这样做:
UPDATE mytable
SET column1 = CASE WHEN ... THEN ... WHEN ... THEN ... WHEN ... THEN ... WHEN ... THEN ... ELSE ... END
...
WHERE ...
不过,我要做的是:
UPDATE mytable
SET column1 = CASE WHEN ... THEN ... WHEN ... THEN ... ELSE ... END,
column1 = CASE WH
我想在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 '%
我创建了以下查询,以删除项目编号点之后的最后一个数字:1234..0001
SELECT
CASE WHEN CHARINDEX('.', project) > 0 THEN
LEFT(project, CHARINDEX('.', project)-1) ELSE
project END
FROM projects_table
WHERE Project between 1000 AND 2000
因为我需要原来的项目编号作为结果,所以情况不应该包含在select部件中,而应该包含在查询的whe
我在一个查询中遇到了一些空值,在我的CASE语句中,对空值的测试没有被处理。我试着用不同的方式来安排测试,但这似乎没有什么区别。
SELECT Title, library.LibraryID, Registered
FROM libraries
LEFT JOIN
(SELECT LibraryID,UserID,
(CASE
>>> WHEN UserID IS NULL THEN "False" <<<<<<<< PROBLEM
我有两个表: PROD和CUST在SQL和SYBASE中运行以下查询时,它可以工作。甲骨文没有给出任何结果。
select * FROM PROD
where PROD.SECID NOT IN (SELECT CUST.SECID FROM CUST WHERE SECID <> '')
注意: PROD.SECID的所有值都是空值。CUST.SECID具有所有非空值(有效值)。
<>''不会从内部子查询中获取任何记录,所以我将其更改为IS NOT NULL,现在它会获取结果。
但问题是,当查询作为一个整体运行时,它不会给出任何结果,而
当满足条件时,我试图将值插入表的1列中。
注意:该表已经包含了所有列的数据,但1的数据为空。我想根据WHERE子句将值插入到这1列中。
我有一个疑问:
INSERT INTO <TABLE_NAME>
(COLUMN_NAME)
(VALUE)
WHERE <CONDITION>
我有个例外:
关键词附近的不正确语法
我可以使用UPDATE来完成这个任务:
UPDATE <TABLE_NAME>
SET <COL_NAME>
WHERE <CONDITION>
但不知道为什么INSERT查询失败。任何建议都很感激。
我有一个存储过程,它可能得到或不可能得到int I的字符串列表。当它没有得到它时,它的值是:‘’。另一个明智的说法是:“500,507,908”
我试着像这样使用它:
select ID as projectTeamId, Employee_ID, Supervisor_ID
from ProjectTeam
where Project_ID = @projectId and IsDeleted = 0 and
ID in (CASE @stringList WHEN '' THEN ID ELSE (SELECT * from TurnListStrin
我正在用python脚本查询sqlite数据库表。
SELECT servername,
date('now','localtime'),
sum(CASE WHEN locked="NO" THEN 1 END),
sum(CASE WHEN locked="YES" THEN 1 END)
FROM nodes
WHERE servername="SOME_SERVER"
它工作正常(给我服务器名、今天的日期、未锁定节点的数量和锁定节点的数目).
..。除了查询没有匹配时(即。
我已经找了很长一段时间了,一直找不到答案。我有以下查询:
SELECT DISTINCT o.titulo, o.fecha_estreno
FROM Obra o
WHERE (o.titulo LIKE '%Barcelona%' AND EXISTS(SELECT p.id_obra FROM Pelicula p WHERE p.id_obra = o.id_obra)) OR EXISTS(SELECT DISTINCT pa.id_obra
FROM Participa pa
WHERE pa.id_obra = o.id_obra AND EXISTS(SEL
我有一个查询,它根据第二列对结果进行排序。
select decode(name, null, 'n/a', name) name, value1
from tableA
group by name
order by 2
我如何更改它,使第一列为null的结果总是结果集中的最后一行,而不更改其余结果的顺序?
在我的脑海中,有一个解决方案是使用union两个查询,一个不包含空,另一个只有空,类似于:
select decode(name, null, 'n/a', name) name, value1
from tableA
where name is not n
下面是我试图执行的查询,它应该返回一个表,其中包含未满的池的数据(members_nr < members_max)。
SELECT id, name,
(
SELECT COUNT(*) FROM pools_entries WHERE pool_id=p.id AND pending=0
) AS members_nr,
members_max, open
FROM pools p
WHERE id IN(1,2,3,4) AND members_nr < members_max;
问题是MySQL不会将members_nr识别为字段,因为它是子查询的结果。这个小问题有
问题在底部,但简而言之,我正在创建的表给出了字段Division的空值,即使链接与我的case表达式匹配,但我似乎找不到原因。
我正在创建一个表,根据程序中的链接url分配部门:
create table set_divisions as
select distinct campaign, offer,
case
when upper(link) like '%NORTH%' then 'NORTH'
when upper(link) like '%SOUTH%' then 'SOUTH'
when u
我有一个SQL语句,它有一个来自SELECT的CASE,但我就是不能正确地使用它。你们能给我举个CASE的例子吗,案例是条件,结果来自案例。例如:
Select xxx, yyy
case : desc case when bbb then 'blackberry';
when sss then 'samsung';
end
from (select ???? .....
结果显示的位置
name age handphone
xxx1