从空中选择?
回答
我可以在它后面放置一个像WHERE(SELECT ...)这样的语句吗? – 2010-09-17 03:12:18
+1。我也不知道。 :) – sheeks06 2010-09-17 03:18:03
可以。我使用的StackExchange Data Explorer query下面几行:
SELECT
(SELECT COUNT(*) FROM VotesOnPosts WHERE VoteTypeName = 'UpMod' AND UserId = @UserID AND PostTypeId = 2) AS TotalUpVotes,
(SELECT COUNT(*) FROM Answers WHERE UserId = @UserID) AS TotalAnswers
数据交换使用的Transact-SQL(在SQL Server专有扩展到SQL)。
您可以通过运行一个查询喜欢自己尝试一下:
SELECT 'Hello world'
数据交换是基于SQL Server的Azure。 – 2010-09-17 03:18:36
而SQL Server使用[Transact-SQL](http://en.wikipedia.org/wiki/Transact-SQL)。 – palswim 2010-09-17 19:45:53
这是不同厂商并不一致 - 甲骨文,MySQL和DB2支持双:
SELECT 'Hello world'
FROM DUAL
...在SQL Server ,PostgreSQL和SQLite不要求:FROM DUAL
:
SELECT 'Hello world'
MySQL确实支持方法。
我一直在想。为什么幻影表的选项是双重的? – 2010-09-17 03:27:34
@Alex:“原来的DUAL表有两行(因此它的名字),但随后它只有一行。” – rebelliard 2010-09-17 03:35:14
在DB2上,dual被称为'sysibm.sysdummy1' – 2013-09-12 09:10:39
在Standard SQL中,no。 A WHERE
子句暗示了一个表格表达式。
从SQL-92规格:
7.6 "where clause"
Function
Specify a table derived by the application of a "search condition" to the result of the preceding "from clause".
依次为:
7.4 "from clause"
Function
Specify a table derived from one or more named tables.
做它的标准方式(即应该在任何SQL产品工作):
SELECT DISTINCT 'Hello world' AS new_value
FROM AnyTableWithOneOrMoreRows
WHERE 1 = 1;
...假设您想要将WHERE
子句更改为更有意义的内容,否则可以省略。
错误:my_table中不存在列“hello world”列 查询失败 PostgreSQL表示:my_table中不存在列“hello world” – 2016-05-12 08:19:58
@PålBrattberg:应该是单引号,现在已修复。 – onedaywhen 2016-05-12 09:27:45
是的,使用单引号 – 2016-05-12 15:33:52
在SQL Server类型:
Select 'Your Text'
没有必要为FROM
或WHERE
条款。
为什么不使用代码块来更好地显示代码? – 2012-11-27 17:33:09
我认为这是不可能的。理论上讲:选择执行两种东西:
缩小/扩大set(set-theory);
映射结果。
第一个可以看作是一个横向递减,与where子句相反,它可以被看作是一个垂直递减。另一方面,联合可以水平增加集合,联合可以垂直增加集合。
augmentation diminishing
horizontal join/select select
vertical union where/inner-join
第二个是映射。映射,更多的是一个转换器。在SQL中它需要一些字段并返回零个或多个字段。在select中,可以使用一些集合函数,如sum,avg等。或者将所有列值转换为字符串。在C#linq中,我们说一个select接受一个T类型的对象并返回一个U类型的对象。
我认为混淆的原因可以是:select 'howdy' from <table_name>
。该功能是映射,转换器的一部分。你不打印东西,但转换!在您的例子:
SELECT "
WHERE 1 = 1
要转换什么/空到"Hello world"
你缩小集没什么/没有表成一排,其中,恕我直言,没有任何意义可言。
您可能会注意到,如果不限制列的数量,则会为表中的每个可用行打印"Hello world"
。我希望,你明白为什么现在。您的选择不会从可用列中获取任何内容,并使用文本创建一列:"Hello world"
。
所以,我的答案是否定的。您不能仅仅忽略from子句,因为select始终需要表列来执行。
我知道这是一个老问题,但你的问题的最佳解决方法是使用虚拟子查询:
SELECT 'Hello World'
FROM (SELECT name='Nothing') n
WHERE 1=1
这样你可以有WHERE和任何条款(比如连接或应用等)后,自从虚拟子查询以来的select语句强制使用FROM子句而不更改结果。
我用火鸟 首先,创建一个名为 “显着” 像这样
CREATE TABLE NOTABLE
(
NOCOLUMN INTEGER
);
INSERT INTO NOTABLE VALUES (0); -- You can put any value
一列的表,现在你可以这样写
select 'hello world' as name
从著名
你可以添加任何你想要显示的列
试试这个。
SELECT * FROM (VALUES ("Hello world")) t1 (col1) WHERE 1 = 1
这里
我认为,因为你已经选择的价值,它不“从”条款需要,拿出价值
- 1. 从列空选择另一个选择
- 2. 无法从表格中选择空格
- 3. PostgreSQL从两个表中选择空值
- 4. SQL只能从表中选择空值
- 5. jQuery空选择器(空选择器)
- 6. 空选择中的问题 - 从选择中删除所有选项
- 7. 空MD-选择选择选项
- 8. 如何从表中选择非空(不空)的所有字段
- 9. 选择列,如果空白从另一个选择
- 10. 选择*从选择
- 11. 从角度选择框中删除非空选项
- 12. 从选择字段中删除空白选项?
- 13. Spinner从SQLite DataBase填充空选择
- 14. 选择字段中的空白选项
- 15. 选择空白TextArea的值=''选择器
- 16. 选择一个空的选择
- 17. 从节点选择中选择节点
- 18. 取消选择struts2从javascript中选择
- 19. 不能选择从选择框中
- 20. UIAlertView - 从选项中选择
- 21. 从JSON中选择选项
- 22. 如何从kendo颜色选择器中为无颜色选择空值?
- 23. 选择空白行从列表视图中取消选择项目
- 24. PrimeFaces树选择空
- 25. 选择非空栏
- 26. 也选择空值
- 27. 选择查询空
- 28. Eclipse选择为空
- 29. 从DataTable中选择
- 30. 从MySQL中选择
上@看着您的评论拉斐尔贝利亚德,你最好问你实际上想做什么。例如,如果给定表的值存在,是否要返回一些字符串? – 2010-09-17 03:15:00
是的,那实际上正是我想要的。我知道我可以做到这一点,我更想知道在“SELECT”和“WHERE”之间是否需要“FROM NULL”。模糊的措辞主要是因为它的功课,我不想让别人来告诉我答案,如果我的直觉感觉错了。 – 2010-09-17 03:16:56