關於sql server中,建檢視的語句中不能加order by的問題
今天寫了個SQL語句
select * from (
select ... from A? union ?select ...from B order by B.xx
) as Tmp
SQL查詢分析器中老是報錯:The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.
而單獨執行select ... from A? union ?select ...from B order by B.xx語句時是可以的。
後來分析原因如下:
sql中建view是不能用order by字句的,即:
如果把該查詢語句建成檢視
? create view v_test
? as
? select * from sysobjects order by name
? 會提示出錯:
The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.
而在巢狀查詢中,系統會自動為select ... from A? union ?select ...from B order by B.xx語句建一個view,裡面有order by字句,當然會報錯了,去掉order by後,執行成功!
相關推薦
關於sql server中,建檢視的語句中不能加order by的問題
今天寫了個SQL語句 select * from ( select ... from A? union ?select ...from B order by B.xx ) as Tmp SQL查詢分析器中老是報錯:The ORDER BY clause is invalid in views, inline
在Oracle、MySQL中執行sql指令碼生成hive建表語句
python3指令碼: #mysql for i in range(len(table_name)): sql1 = """SELECT CONCAT('create table ','%s','(') UNION ALL SELECT CONCAT(
翻譯:《Pro SQL Server Internals,2nd edition》的CHAPTER 2 Table and Indexes中的Clustered Indexes
原文連結:http://www.allitebooks.com/pro-sql-server-internals-2nd-edition/ 原文作者:Dmitri Korotkevitch 聚集索引 聚集索引指示表中資料的物理順序,該表根據聚集索引鍵進行排序。 該表只能定義一個聚集索引。 假設您要在堆
c#中SQL Server 資料庫的讀寫語句
資料庫讀寫 CDataBase using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Dat
powerDesigner將name信息生成到備註中,導出語句有備註信息
sql 情況 blank idt comm 說明 -1 建表 twitter name註釋信息 在創建pdm時由於需要在name列填寫的是以後要在表中創建的註釋信息,comment中則寫的說明信息字數比較多。默認情況下在生成建表sql時不能將name生成註釋信息,進行如下設
SQL Server數據庫安裝過程中遇到的問題
出現 安裝 .com benet 計算機 div 端口 分析器 名稱 之前因為項目需求,使用SQL Server 2008R數據庫,在安裝完成之後,登錄的時候遇到點問題 問題是: 在本地進行連接的時候localhost、.等無法直接登錄,必須加上實例名,如localho
在數據庫中sql查詢很快,但在程序中查詢較慢的解決方法
type acl value and 字段類型 number bte check rec 在寫java的時候,有一個方法查詢速度比其他方法慢很多,但在數據庫查詢很快,原來是因為程序中使用參數化查詢時參數類型錯誤的原因 1 select * 2
SQL SERVER 將一個數據庫中的表和資料複製到另一個數據庫中
第一種情況:將A資料庫.dbo.A表的資料追加到B資料庫.dbo.B表中 (條件:此時B資料庫中已建立好了B表) insert into B資料庫.dbo.B表 select * from A資料庫.dbo.A表 [where條件] 此T-SQL語句會有異常 &n
解決SQL Server查詢中使用Union或Union All後Order by排序無效的bug(好神奇啊!!)
http://www.ourcodelife.com/article-415-1.html 首先,在程式人生網站上,需要負責任的指出的是在SQL Server查詢中使用Union或Union All後Order by排序無效,我不確認是不是微軟的bug,不過這裡卻是我實際程式設計工作的經驗,但願大家看到
【MyBatis】sql語句中的按時間排序無效問題order by create_time desc
mybatis的mapper檔案中書寫sql語句,但是根據時間倒序查詢的order by create_time 突然無效了,這是為什麼?導致無效的原因:時間格式做了改變,時間欄位別名和原始欄位重名,導
SQL Server 在多個數據庫中建立同一個儲存過程(Create Same Stored Procedure in All Databases)
一.本文所涉及的內容(Contents) 二.背景(Contexts) 在我的資料庫伺服器上,同一個例項下面掛載著許多相同結構的資料庫,他們為不同公司提供著服務,在許多時候我需要同時建立、修改、刪除一些物件,儲存過程就是其中一個,但是想要批量建立儲存,這有些特殊,下面就教你如何實現在多個數據庫中建
Sql Server儲存過程從一個表中抓取資料填充到另一張表中
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: <alex,,Name> -- Create
SQL SERVER 主鍵和外來鍵中的 級聯刪除(ON DELETE CASCADE)和級聯更新(ON UPDATE CASCADE)
建立學生表 create table gh_student( stuno varchar(3) primary key, stuname varchar(4), stuclass varchar(3) ) 插入資料 insert into gh_student values
初入職常見問題:忽略區域性變數的作用域,在if語句中宣告的區域性變數只在{}內有效
在做儲存服務StoreProxy專案時,因為把位置(A)處的程式碼放到了位置(B),導致儲存的圖片資料有誤,原因是忽略叻區域性變數的作用域,在if語句中宣告的區域性變數res只在{}內有效。 函式xxxxx(xxx,xxxx) { (A)CHttpCurl
[mysql]SQL語句效能優化--Order by中加DESC慢很多的原因調查與處理
1. mysql在資料量較大的時候、使用order by查詢結果集時速度很慢的原因可能有以下幾種:1) 排序欄位不在同一張表中2) 排序欄位沒有建索引3)排序欄位加DESC後索引沒有起作用(如何讓索引起作用才是關鍵、且聽下文分解)4)排序欄位中加函式導致索引不起作用(這種一定
SQL Server : 表是否存在;表中某欄位是否存在;儲存過程是否存在;索引是否存在;
table_name --表名field_name --欄位名一、表是否存在:--如果不存在表,那麼建立IF OBJECT_ID('table_name') IS NULL BEGIN CREATE TABLE table_name([field_name] [UN
在eclipse中,如何檢視webservice請求頭
本篇文章還以HelloService為例。 完整的HelloService.java檔案如下 package cn.itcast.ws; import javax.jws.WebService; import javax.xml.ws.Endpoint; /** *
給定一個字串:要求輸入英文語句,輸出英文語句中每個單詞在字串中出現的次數。
def geshu(src): n=0; str1 = src.split(); len1=len(str1); for s in str1: n = 0; for i in range(len1):
struts2下,jsp檢視頁面中CSS和javascript引用相對路徑和絕對路徑問題。
在Struts2的實際使用中,經常會在jsp檢視頁面中引入CSS和javascript,這就涉及到引用路徑問題。路徑有兩種,一種是相對路徑,另一種是絕對路徑。我們分別來說說在Struts2的頁面檢視中
檢視SQL SERVER 資料庫正在執行的語句和時長等
SELECT session_Id, --ecid, --sp.dbid,--DB_NAME(sp.dbid) as DB_NM, --nt_username,er.status,wait_type,SUBSTRING (qt.text, er.statement_star