0

クエリの場所を追加して、変換または置換または最大値を実行する方法!

max(convert(int,replace(( QueueNum ),'-',''))) from [Queue]

QueueNum の where 句で、特別な何かを持つレコードの最大数を返したい。

編集:

データ :

1981-1-1232
1981-1-1235
1981-1-1234
1981-2-1
1981-2-2
1981-2-13

で始まったばかりのレコードの最大値を返す方法 1981-2

4

4 に答える 4

0

この場合、MSSql データベースだと思いますが、変換せずに次のステートメントを使用してみてください。

SQLfiddle デモ

select TOP 1 
QueueNum
from Queue where QueueNum like '1981-2-%'
order by LEN(QueueNum) desc, QueueNum desc
于 2013-02-19T08:27:55.223 に答える
0

条件をhaving句に入れます

于 2013-02-19T08:20:50.057 に答える
0

これは、あなたの望むことですか?

SELECT MAX(CONVERT(INT, REPLACE((QueueNum),'-','')))
FROM Queue
WHERE QueueNum LIKE '1981-2%'

SQLフィドル

于 2013-02-19T08:21:28.823 に答える
0

私が良い答えを出しているかどうかはわかりませんが、クエリを次のように書くことができます

Select max(MyValue) from (Select Convert(int, replace((QueueNum),'-','')) as MyValue from [Queue]) MyTable 

それが行うことは、1 つの列 MyValue と Int 型のメモリ内に一時テーブルを作成し、そのテーブルから Max を見つけることです。このようなクエリでは、特に SQL Server で実行するために「MyTable」[テーブル エイリアス] が重要な場合があることに気付きました。

于 2013-02-19T08:17:32.287 に答える