是否可以在case子句中为when语句写入子查询
即。
SELECT colA, colB,
CASE WHEN (SELECT colA FROM tab2 WHERE tab2.colA = tab1.colA) THEN '1'
CASE WHEN (SELECT colA FROM tab3 WHERE tab3.colA = tab3.colA) THEN '2'
ELSE '0'
END AS colC,
...
FROM tab1
扩展问题:
是否可以基于该值列执行某些操作?(非常确定是的,但希望得到确认)
下面的查询应该返回多行多列数据库中的数据,而不需要使用mysql中的过程。
我的代码:
SELECT CASE WHEN @country_count < 8 THEN
(SELECT * FROM country where country_id =1)
ELSE
(SELECT * FROM country where country_id > 1)
END;
我有下面的SQL代码,这是从一个MySQL数据库。现在,它给出了我期望的结果,但是查询速度很慢,我认为在进一步执行之前,我应该加快查询速度。
表agentstatusinformation包含:
PKEY (主键),userid (整数),agentstate (整数)
表axpuser包含用户名:
PKEY (主键) <--这是userid,loginid (usersname)的键
select distinct (select loginid from axpuser where axpuser.pkey = age.userid),
case
when ag
在盟友的情况下,条件作为列,我们可以过滤该列吗?
榜样;
SELECT
CASE WHEN Number like '20%' THEN 'X'
WHEN Number like '15%' or Number like '16%' THEN 'Y' ELSE 'Z'
END Operation
,*
FROM
TableA
where Operation like 'X'
当条件为“操作”时,我调用CASE,现在我只想看到操作列中的“X”操作。
在
我希望基于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
我的route表中有四个字段
busid, routid, position and distance
我想让busid and distance from a select query看看。我的选择查询如下:
$endb = mysql_query("select case when a.position < b.position then a.busid when a.position > b.position then a.busid else null end as busid, a.distance as distance from (select busid,p
我有这样一种情况,我正在构造一个派生的数据透视表,然后我希望能够根据各种条件对其进行子选择(实际上是创建一个数据透视表)。
所以..。在伪模型中,它看起来就像这样。
select
(select sum(score) from derivedTable where username like 'a%') as scoresForANames,
(select sum(score) from derivedTable where username like 'b%') as scoresForBNames
from
( select userna
我的查询如下:
select case when product.name = "milk" then product.price
when product.name = "juice" and product.price > 3 then product.description
end as product_condition
from product
where product_condition = 10;
但是在那之后,我有一个错误,这一列的PRODUCT_CONDITION没有找到。那么怎么可能做到呢?
是否存在将mysql查询按列组合的方法?我有以下问题
select count(ticket_id) as numInProgress from ost_ticket where status
= 'in progress' and topic_id not in (select topic_id from ost_org_site_map)
select count(ticket_id) as numAssigned from ost_ticket where status =
'open' and topic_id not in (select
如何在WHERE子句中正确使用MySQL变量?与column1、column2、column3不同,我有大量的查询,这就是为什么我认为最好使用变量。不知道我做错了什么!
SELECT
@TEST:= CASE
WHEN column1=1 THEN 'ONE'
WHEN column1=2 THEN 'TWO'
WHEN column1=2 THEN 'THREE'
ELSE 'Unknown'
END AS test
FROM
table1
WHERE
@TEST= '
第1列:
( CASE
WHEN (SELECT edition
FROM clients.dbo.service
WHERE serv_id = hdr.serv_id) = 'General' THEN 'G'
WHEN (SELECT edition
FROM clients.dbo.service
WHERE serv_id = hdr.serv_id) =
我有一个问题:
SELECT id
, CASE WHEN id LIKE 'A_SEQ%' THEN 'amber'
WHEN TestReason = 'itf' THEN 'red'
ELSE NULL END AS amberRed
FROM db.tbl1
我希望将某些内容归类为red或amber,并排除其他所有内容。
这背后的原因是因为如果我不排除NULL,结果数据集就是144,000,000 (1.44亿)行深;如果不排除NULL,它就会将其缩减为878,000行。
我一直在读的一般建议是尝试
我正在将SQL从Redshift移动到AWS Athena,但我遇到了麻烦,因为SQL给了我错误。 SELECT abc_name AS bca_name,
CASE
WHEN name = 'aaa' THEN 'AAC'
WHEN name = 'bbb' THEN 'BBA'
WHEN name = 'ccc' THEN 'CCB'
END AS abc
FROM master_table
WHERE abc IS NOT NULL; 这个SQL给了我一个错误:它告诉我没有abc
这是一组大得多的表的一部分,但简单的细分是,我有两个表,employees和profits。每次在公司获得利润时,都会将利润添加到利润中,并引用赚取利润的员工ID,而我则执行案例检查,以便在自定义列中显示任意值。
模式:
当我提取员工列表时,我通过一个子查询生成属于他们的所有利润的总和:SELECT firstname, lastname, (SELECT SUM(amount) FROMprofits WHERE profits.employee_id=employees.id) ASprofits FROM employees。
生成以下列:
fir
我使用一个类似于发布的查询,以给定的顺序获取对象列表。
我还有两个环境,一个使用MySQL,另一个使用Oracle。在MySQL中,答案中给出的HQL (这里发布以供参考)运行良好,但是当切换到Oracle时,它会转换为无效的相同结果SQL。
select q from Question q where q.id in (:ids) ORDER BY FIELD(id, :ids)
所以我想扩展Oracle10gDialect,并提供转换成符合Oracle标准的SQL:
select q.id
from
Question q
我有一个问题,需要在MySQL查询中作为列并在该列上执行“中间”。我想出的最简单的版本说明了问题所在:
SELECT ID AS post_id FROM wp_posts WHERE (post_id BETWEEN 10 AND 20)
这会引发以下错误:
#1054 - Unknown column 'post_id' in 'where clause'
有没有办法使新创建的post_id列对中间操作符可见?
更新:
这是我真正的疑问。正如您所看到的,它稍微复杂一些:
SELECT wp_postmeta.post_id,
MAX(CASE WHEN wp
因此,我有一个比较长的查询,如下所示:
SELECT (
(CASE Methanethiol
WHEN -1 THEN 0
ELSE Methanethiol
END)
+
...
+
(CASE nHeptanethiol
WHEN -1 THEN 0
ELSE nHeptanethiol
END)
)
FROM condensates.mercaptans
WHERE (
(CASE Methanethiol
WHEN -1 THEN 0
我有一个SELECT查询,它应该有来自同一个表的几个嵌套的SELECT查询,但是不同的WHERE子句可以生成新的列。
问题是,每个子查询在其单一形式下运行良好,但是当它们变成子查询时,MySql会抛出一个错误。
以下是我的SQL:
SELECT user,
(SELECT SUM(amount) from my_table WHERE type='form1' group by user) as form1,
(SELECT SUM(amount) from my_table WHERE type='form2' group by user) as form2
我有一个包含id和name等列的MySQL表。我只想在变量中取值,有时是id,有时是name。如何检查两列中的值?
我尝试过这样的东西:
select count(*) from topic where (name= '"+ name + "' or id='"+name+"')
变量名是相同的,所以我必须检入两列。
我正在处理一个公式,其中我根据其他单元格的值在一行和一列中添加多个值。例如,我有以下工作代码:
$result = mysql_query("SELECT School,SUM(Wins + Losses) as total FROM tennis GROUP BY School");
echo "<table border='1'>
<tr>
<th>School</th>
<th>Score</th>
</tr>";
while($row = mysql_
我有这两个查询,它们都从同一个表中带来信息,但在不同的WHERE条件下,我如何在一个查询中执行这个查询,给出的结果是一个包含2列的表,其中一列的值是查询1的值,第二列是查询2的值。 查询1 SELECT COUNT(*) AS FirstColumn
FROM MyTable
WHERE ThisValue !=1150 and Date = today-1; 查询2 SELECT COUNT(*) AS SecondColumn
FROM MyTable
WHERE ThisValue = 1130 AND
((Station_Date = today-1 AND Statio
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
我看到的是平日回来的景色。结果将是WHERE子句中的一个列,如下所示:
SELECT * FROM dvtv_delivery WHERE (SELECT day FROM dvtv_weekday) = 'Y'
例如:
今天是星期天,在dvtv_weekday中返回太阳在dvtv_delivery中存在列太阳
在Mysql中有可能吗?当我运行时,什么都不会出现
使用我在下面使用,工作
SELECT * FROM dvtv_delivery WHERE SUN = 'Y'
任何答案都会很有帮助!抱歉,我的英语不好
这是我的mysql查询:
SELECT
(SELECT SUM(jb_qty) FROM tbl_transactions WHERE jb_Type=1 AND jb_s_Id=$s_Id) AS purqty,
(SELECT SUM(jb_qty) FROM tbl_transactions WHERE jb_Type=2 AND jb_s_Id=$s_Id) AS salqty
FROM tbl_transactions LIMIT 1
以获得股票状态(jb_type、1是购买,2是销售)。
我也希望从这个(比如purqty-salqty)中获得当前的股票状态,并且
我试图在MS的后面列中使用计算中的一列的结果。
下面是我的SQL代码:
SELECT
(SELECT 'EURUSD' AS a) AS symbol_name,
(SELECT TOP 1 ROUND(p.BidLast,5) FROM mt5_prices p WHERE p.Symbol LIKE 'EURUSD%') AS Bid,
(SELECT SUM(m.Volume)
FROM mt5_positions m
WHERE m.Symbol LIKE 'EURUSD%' AND m.Login IN (SELECT u.Lo
有人能帮我解释一下这个例子中SUM函数的用法吗?我a引用的count不是函数,而是我的表上的列的名称。我正在尝试获取返回列数的文字计数 SELECT count, post_id
, DeliveryDate
, DeliveryType
FROM ( SELECT count, post_id
, MAX(CASE WHEN meta_key = 'value_1' THEN meta_value ELSE NULL END) as DeliveryDate
, MAX(CASE WHEN me
我有一个类似这样的查询:
SELECT
jobs.*,
(
CASE
WHEN lead_informations.state IS NOT NULL THEN lead_informations.state
ELSE 'NEW'
END
) AS lead_state
FROM
jobs
LEFT JOIN lead_informations ON
lead_informations.job_id = jobs.id
AND
我们不能这么做吗?
SELECT tbl_ads.*, CASE tbl_ads.type
WHEN 'private'
THEN (select tbl_privatesellers.privateseller_state from tbl_privatesellers where tbl_privatesellers.privateseller_id = tbl_ads.privateseller_id )
WHEN 'dealer'
THEN (select tbl_dealer.state from tbl_
我有一个名为Transactions的表,它有transaction_id、prod_subcat_code等列。在where子句中,我给出了两个条件。但是我没有得到想要的结果。
Select prod_subcat_code,
(select count(transaction_id) from Transactions where Qty>'0' and
prod_subcat_code='1')*100/(select count(transaction_id) from Transactions)
as Sales_Percentage,
(
我有一条mySQL SELECT语句,在WHERE条件中结合了全文搜索和普通搜索,还有一个类似下面这样的JOIN
SELECT
customer.*,
countries.name as country
FROM customer
LEFT JOIN countries ON countries.ID = customer.country_id
WHERE customer.num = :keyword
OR customer.city = :keyword
OR customer.email = :keyword
OR MATCH (
我试图使用不同的"where“值三次提取同一列的计数。例如
SELECT (sum(count(phonenum) FROM table1 WHERE uniqueID IN ( 123, 43, 124, 44, 112)) AS blabla_LTD)
,(sum(count(phonenum) FROM table1 WHERE uniqueID IN (163, 53, 114, 45, 222)) AS lablab_LTD)
期望的
Blabla_LTD LABLAB_LTD
1234 11234
谢谢你的帮助。
为什么我不能在where子句中使用临时列?
例如,此查询:
Select
product_brand,
(CASE WHEN COUNT(product_brand)>50 THEN 1 ELSE 0 END) AS brand_count
FROM
products
WHERE
1
GROUP BY
product_brand
这将显示两列,一列名为product_brand,另一列名为brand_count。brand_count是动态创建的,并且始终是1或0,这取决于是否有50个或该品牌的产品。
所有这些对我来说都是有意义的,
我有多个sql查询(准确地说是25个),希望将结果作为一行结果返回。例如..。
--获取数据库中有EnvPrint记录的条形码
select count(distinct jtbarcode) as CountEP
from jobtracker with(nolock)
where jtprocess = 'EnvPrint' and jtbarcode in(Select lookupcode from data with(nolock) where clientid = 123 and batchid = 12345 and jobid = 1 and subjobi
我有一个mysql表(Tbl_subscriptiondetails),类似于最后一列,即'test_status‘可能只有C、S和Y值。使用单个查询,我想以如下所示的方式获取数据
但是,我使用的查询给了我不想要的results.My查询
SELECT pkg_name,
(SELECT COUNT(*) FROM tbl_subscriptiondetails WHERE test_status='C' AND mem_id=3) AS completed,
(SELECT COUNT(*) FROM tbl_subscriptiond
我正在MySQL上运行这个查询。
Select Vendor, sum(Rate) as Rate
from (select case Vendor when 'NSN' then 'Nokia' else Vendor end as Vendor, Rate
from ( Select vendor ,(count(1) )*100/(Select count(id_incident)from incident where open_time between '2015-01-01'and'2015-01-30') as Ra
我有如下问题:
SELECT COUNT(*) AS AppleSupports
FROM VendorItemPricing
WHERE VendorName = 'Apple'
SELECT COUNT(*) AS HpSupports
FROM VendorItemPricing
WHERE VendorName = 'HP'
上面的查询给我的结果如下:
AppleSupports
63
HpSupports
387
如何使我的查询在一行中获得如下所示的结果?
AppleSupports HpSupports
63
我有一个带有两个参数的MySQL,$catname和$limit=1,它运行得很好。
SELECT P.*, C.Name AS CatName
FROM omc_product AS P
LEFT JOIN omc_category AS C
ON C.id = P.category_id
WHERE C.Name = '$catname'
AND p.status = 'act
我想检查组中是否存在一个列的值,而另一个列的值是否不存在。
num | text |
1 | A |
1 | B |
2 | A |
2 | C |
3 | A |
3 | D |
4 | B |
4 | C |
我想获得2,3 num.Now的组,我使用以下查询:
select c1.num from table c1 inner join table c2 on c1.num = c2.num
where c2.text !='B' and c1.type !='B&
如何修复此查询?我收到以下错误:
'where子句‘中未知列'count_of_confirmed_rec’
MySQL查询:
SELECT
(SELECT COUNT(a.col_1)FROM table_1 a
JOIN table 2 b ON a.col_id= b.col_id) count_of_confirmed_rec,
c.col_1,
FROM table_3 c
LEFT JOIN table_4 d ON c.col_id = d.col_id
WHERE d.col_1 = 'value'
AND c.col_1 = CAS