從空中選擇?
回答
我可以在它後面放置一個像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