博主
blogger_id
1
2
3
Run Code Online (Sandbox Code Playgroud)
2.帖子
post_from_blogger_id
1
1
1
2
2
3
Run Code Online (Sandbox Code Playgroud)
正如你可以看到博客№1发布超过其他人和博客№3少.问题是如何构建一个选择所有博主的查询,并根据帖子的数量对它们进行排序?
我想用两列对我的产品表进行排序:prod_price和prod_name.
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price, prod_name;
Run Code Online (Sandbox Code Playgroud)
如何在这里完成排序?我认为它首先发生prod_price,然后发生prod_name.此外,上述查询与此不同如何:
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_name;
Run Code Online (Sandbox Code Playgroud)
我的产品表如下:
CREATE TABLE Products
(
prod_id char(10) NOT NULL ,
vend_id char(10) NOT NULL ,
prod_name char(255) NOT NULL ,
prod_price decimal(8,2) NOT NULL ,
prod_desc text NULL
);
Run Code Online (Sandbox Code Playgroud) 我怎样才能确定我的结果集有a第一个和b第二个?这将有助于我解决一个棘手的订购问题.
这是我正在做的简化示例:
SELECT a FROM A LIMIT 1
UNION
SELECT b FROM B LIMIT 1;
Run Code Online (Sandbox Code Playgroud) 我的目标是执行两个不同的查询,然后将它们组合起来.
我的代码是:
SELECT * FROM some tables WHERE ... ORDER BY field1 LIMIT 0,1
UNION
SELECT * FROM some tables WHERE ...
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
#1221 - UNION和ORDER BY的使用不正确
重要的是ORDER BY仅用于第一个查询.我该如何执行此任务?
知道为什么LINQ OrderBy不能在下面的代码中工作,(没有错误,但方法不排序......)
首先是我自己的类型
public class IQLinksView
{
public int id { get; set; }
public int catid { get; set; }
public int? viewed {get;set;}
public string name {get;set;}
public string desc {get;set;}
public string url {get;set;}
public string pic {get;set;}
public string cat {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
然后查询:
IQueryable<IQLinksView> newView =
from links in this.emContext.tbl_otherlinks
select new IQLinksView { id = links.pklinkid, catid =
links.tbl_catgeory.pkcategoryid, viewed = links.linkviewed, name = links.linkname,
desc = links.linkdesc, pic = links.linkpicture, url = links.linkurl, cat …Run Code Online (Sandbox Code Playgroud) 我有以下JOIN查询:
SELECT
table1.*,
table2.*
FROM
Table1 AS table1
LEFT JOIN
Table2 AS table2
USING
(col1)
LEFT JOIN
Table3 as table3
USING
(col1)
WHERE
3963.191 *
ACOS(
(SIN(PI() * $usersLatitude / 180) * SIN(PI() * table3.latitude / 180))
+
(COS(PI() * $usersLatitude / 180) * COS(PI() * table3.latitude / 180) * COS(PI() * table3.longitude / 180 - PI() * 37.1092162 / 180))
) <= 10
AND
table1.col1 != '1'
AND
table1.col2 LIKE 'A'
AND
(table1.col3 LIKE 'X' OR table1.col3 LIKE 'X-Y') …Run Code Online (Sandbox Code Playgroud) 如果我写
select ename, to_char(hiredate,'fmDay') as "Day" order by "Day";
Run Code Online (Sandbox Code Playgroud)
然后根据Day对结果进行排序; 从星期五,然后是周一和上周三,就像按字符排序一样.
但是我想在一周之前对它进行排序; 从周一到周日.
我们希望在使用Visual Studio DataSet Designer创建的查询或存储过程的"Order By"子句中使用参数.
例:
FROM TableName
WHERE (Forename LIKE '%' + @SearchValue + '%') OR
(Surname LIKE '%' + @SearchValue + '%') OR
(@SearchValue = 'ALL')
ORDER BY @OrderByColumn
Run Code Online (Sandbox Code Playgroud)
显示此错误:
Variables are only allowed when ordering by an expression referencing
a column name.
Run Code Online (Sandbox Code Playgroud) 什么是使用DOMAIN名称片段对具有一列电子邮件地址的表进行排序的最短和/或最有效的SQL语句?
这基本上忽略了电子邮件地址中"@"之前的任何内容,并且不区分大小写.让我们忽略这个国际化的域名.
目标是:mySQL,MSSQL,Oracle
来自的样本数据 TABLE1
id name email ------------------------------------------ 1 John Doe johndoe@domain.com 2 Jane Doe janedoe@helloworld.com 3 Ali Baba ali@babaland.com 4 Foo Bar foo@worldof.bar.net 5 Tarrack Ocama me@am-no-president.org
通过电子邮件订购
SELECT * FROM TABLE1 ORDER BY EMAIL ASC
id name email ------------------------------------------ 3 Ali Baba ali@babaland.com 4 Foo Bar foo@worldof.bar.net 2 Jane Doe janedoe@helloworld.com 1 John Doe johndoe@domain.com 5 Tarrack Ocama me@am-no-president.org
按域名排序
SELECT * FROM TABLE1 ORDER BY ?????? ASC
id name email ------------------------------------------ 5 Tarrack Ocama me@am-no-president.org 3 …
以下查询在几乎每个数据库(提供或获取虚拟表)中都非常有效dual,包括Oracle:
select 'A' as x from dual union all
select 'B' from dual
order by x asc
Run Code Online (Sandbox Code Playgroud)
返回:
| X |
|---|
| A |
| B |
Run Code Online (Sandbox Code Playgroud)
现在这个查询仍然是非常标准的SQL,但不适用于Oracle
select 'A' as x from dual union all
select 'B' from dual union all
select 'C' from dual
order by x asc
Run Code Online (Sandbox Code Playgroud)
我越来越
ORA-00904: "X": invalid identifier
Run Code Online (Sandbox Code Playgroud)
但是,这有效:
select 'A' as x from dual union all
select 'B' as x from dual union all …Run Code Online (Sandbox Code Playgroud) sql-order-by ×10
sql ×8
mysql ×4
oracle ×2
union ×2
domain-name ×1
email ×1
iqueryable ×1
join ×1
linq ×1
oracle11g ×1
parameters ×1
sorting ×1
sql-server ×1
union-all ×1