我在這裏有一些帶有長字段的表的數據庫模式(類型爲「text」的MS-SQL-Server,類型爲「text」的Sybase)也需要檢索不同的行。與長列不同
這些表看起來像
create table node (id int primary key, … a few more fields … data text);
create table ref (id int primary key, node_id int, … a few more fields);
對於「節點」一列,有可能在「REF」零個或多個行。
現在我有一個像
SELECT node.* FROM node, ref WHERE node.id = ref.node_id AND ... some more restrictions.
查詢時,沒有比在「參考」單行一些「NODE_ID」更該查詢返回二倍體和三倍。
但我需要獨特的行!
使用SELECT DISTINCT node.*
不會因爲類型的列
工作「文本」 :-(在Sybase有絕招,只是說「的node.id GROUP」添加到查詢,瞧!你得到唯一的行返回。
是否有MS-SQL-Server中的某些類似簡單的一招?
我已經使用臨時表的解決方案,但是這似乎是慢了很多,也許其原因僅僅是數量較大的,因爲的陳述轉移到數據庫中?
[不良習慣踢:使用舊樣式的JOIN(http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick -using-old-style-joins.aspx) – SqlZim
['text' is deprecated](http://stackoverflow.com/a/564823/2333499),已經有很多年了 – SqlZim
將該列轉換爲(n)varchar並在該組上進行分組。它可能會很慢,雖然... – Jeremy