我有一个包含两列的表。其中一列包含文本,另一列包含整数值。
我需要这个表按整数值排序(更高的值到顶部),但如果整数值等于0,那么我需要按字母顺序排序该行。让我们说我有这张桌子
TextCol|IntCol|
-------|------|
Delta | 0 |
Alpha | 0 |
Beta | 3 |
Sierra | 2 |
Gama | 1 |
现在我需要这个:
TextCol|IntCol|
-------|------|
Beta | 3 |
Sierra | 2 |
Gama | 1 |
Alpha | 0 |
Delta | 0 |
这会是什么SQL查询?
答案 0 :(得分:5)
您可以使用CASE WHEN
:
SELECT * FROM table
ORDER BY intColumn DESC,
CASE WHEN intColumn = 0 THEN stringColumn END ASC
您可以在此处找到一个示例: http://sqlfiddle.com/#!9/a982a/1
答案 1 :(得分:2)
试试这个:
TextCol :它会将文本列命名为升序值。
@echo off
setlocal
setlocal enabledelayedexpansion
set "search=&"
set "replace= AND "
set "textfile=12739*"
set "newfile=Output.txt"
(
for /f "delims=" %%i in (%textfile%) do (
set "line=%%i"
set "line=!line:%search%=%replace%!"
echo(!line!
)
) > "%newfile%"
del %textfile%
rename %newfile% %textfile%
endlocal