爲了讓你解決看看這個鏈接列表框中的問題:http://www.lebans.com/List_Combo.htm 我堅信,這種類型的調整應該在UI層進行,而不是與混合數據檢索。
但是,爲了回答你原來的問題我已經創建了一個SQL Fiddle:
MS SQL Server 2008的架構設置:
CREATE TABLE dbo.some_numbers(n INT);
創建一些示例數據:
INSERT INTO dbo.some_numbers
SELECT CHECKSUM(NEWID())
FROM (VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1))X(x);
以下查詢使用OVER()
子句來指定MAX()
將被應用於所有行。結果所包含的>
和<
僅用於說明目的,並不是解決方案所必需的。
查詢1:
SELECT '>'+
SPACE(MAX(LEN(CAST(n AS VARCHAR(MAX))))OVER()-LEN(CAST(n AS VARCHAR(MAX))))+
CAST(n AS VARCHAR(MAX))+
'<'
FROM dbo.some_numbers SN;
Results:
| COLUMN_0 |
|---------------|
| >-1486993739< |
| > 1620287540< |
| >-1451542215< |
| >-1257364471< |
| > -819471559< |
| >-1364318127< |
| >-1190313739< |
| > 1682890896< |
| >-1050938840< |
| > 484064148< |
此查詢確實的直殼體以示區別:
查詢2:
SELECT '>'+CAST(n AS VARCHAR(MAX))+'<'
FROM dbo.some_numbers SN;
Results:
| COLUMN_0 |
|---------------|
| >-1486993739< |
| >1620287540< |
| >-1451542215< |
| >-1257364471< |
| >-819471559< |
| >-1364318127< |
| >-1190313739< |
| >1682890896< |
| >-1050938840< |
| >484064148< |
有了這個查詢,你仍然需要顯示字體更改爲等寬字體像COURIER NEW
。否則,正如你所注意到的,結果仍然是錯位的。
你現在如何顯示你的查詢結果,他們「總是按照從左到右的順序排列」? –
聽起來你想在你的用戶界面中使用右對齊的文本。 –
好吧,'正確的文字'將更適合描述我渴望的結果 - 但只能在數字列中... –