我需要一些建议,在每次插入后按字母顺序排序。
Example:
Table COUNTRIES
ID 1, name 'Germany'
ID 2, name 'Bahamas'
ID 3, name 'Algeria'
Afterwards:
ID 1, name 'Algeria'
ID 2, name 'Bahamas'
ID 3, name 'Germany'
有关如何实现这一点的任何想法?谢谢。
PD:在ORDER BY
语句中使用的SELECT
只会排序" aesthetical"目的,真正的行没有任何顺序。
答案 0 :(得分:0)
最后,我在http://sqlteam.com找到了这个问题的答案。
也许它会帮助其他一些用户。
CREATE TRIGGER ORDER_COUNTRIES
AFTER INSERT
ON COUNTRIES
AS
BEGIN
UPDATE COUNTRIES
SET name = Table3.name
FROM Prueba Table1
JOIN (SELECT ID, seq = ROW_NUMBER() OVER (ORDER BY ID) FROM COUNTRIES) Table2
ON Table1.ID = Table2.ID
JOIN (SELECT name, seq = ROW_NUMBER() OVER (ORDER BY name) FROM COUNTRIES) Table3
ON Table2.seq = Table3.seq
END
Result:
ID 1, name 'Algeria'
ID 2, name 'Bahamas'
ID 3, name 'Germany'
现在每次插入后表都会正确排序。因此,如果SELECT
使用ORDER BY
或不使用{{1}},则表格将始终按字母顺序排列。
在http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=160974处找到用户的答案 " nigelrivett&#34 ;.所有的功劳归于他。