回答

收藏

SQL Server查询类似int的varchar数据

技术问答 技术问答 335 人阅读 | 0 人回复 | 2023-09-14

我有一张
7 b! k/ ?, ^( S8 U5 {
" I7 Z/ F3 J# M/ X' _7 w! YCREATE TABLE table_name/ D3 q. j$ Y, {% ~2 H
(* N3 S- H, x* u0 N3 r
P_Id int,% y7 N9 l. ^/ F# ~8 H; I( e6 r+ ~
amount varchar(50)2 J8 Q& x$ j" a5 ?
): J7 b+ V5 d1 B3 e% Q/ q
数据喜欢! S4 y1 B* y" o- F6 `+ s
Id amount3 s9 z- @' w  ?, V5 Q
----------, r3 W; T4 Y' d$ b3 C5 U
1 2340
) n) o* g! Z8 e: w. P2 4568
9 q# o1 p& Q+ `' y, D  R( G3 10000( o9 `" E# R; S5 Z
现在我想按数量对表进行排序,但是一个问题是数量是varchar,所以它像这样对表进行排序
0 h- h( ?2 }, O6 a% _: P- mId amount
5 j8 }+ |! @- h6 \# P% E1 k----------/ w# D# a! i, q1 Q3 U! r+ H
3 10000! A0 S! ~. _. x: g3 c# [8 v" G
1 2340
# D+ t/ \" e8 U3 U  B6 e2 45682 i3 P& g* X$ b* e
但我想要这样的结果
5 s& L5 q3 e+ Z5 p# ~; ]Id amount1 d5 u8 M1 M; Z1 i( h0 S1 N
----------2 V4 ^0 c5 _5 r  x( Q6 `
3 100004 B' X6 K# d9 b  T9 D( Z/ A$ d
2 45686 p* Y0 Y+ Q- r- q
1 2340- i0 ?5 M2 b, Z2 q0 g
我该怎么办 ?
, l& Z, P  ]: z& B               
/ s8 l3 _  e- p1 P$ t8 Z, w% b8 ^* a解决方案:
4 [* l1 `3 y% z! W1 R               
1 q2 c, g7 x* E3 _1 g% r' R
& H" M5 O. a5 a' v: ?# m
1 x$ W# V& e4 B# S1 y                选择以下内容时,将金额列转换为“数值输入”ORDER BY子句:7 D/ L5 R+ q: c2 W. m3 |, v/ i- A
SELECT * FROM MyTable
4 o# j# L2 c( W8 r4 _ORDER BY CAST(amount AS Numeric(10,0)) DESC8 Z4 Y! T( _( P) G8 l
结果:  
( f- U1 }5 n; X" L2 H[table][tr][td]
/ A* K6 s9 c+ M1 b) u" ^4 J2 xID1 g& M. G! s% V) N4 W: A0 m
[/td][td]) j3 a" H, ]3 a: A) e% _# X) ~9 \0 \$ L
数量
+ `+ m% o+ _9 _[/td][/tr][tr][td]9 s" n5 I/ v6 q, f+ l) _- C. z
3+ p9 c" q& W9 e# D  U# Q  Z) d
[/td][td]
& S" M" j+ q3 D4 l& V. R10000% Y5 `+ a5 p  d6 G* N
[/td][/tr][tr][td]% E$ Z* x5 t& ~4 }# x! x/ x( g
2个
- K* ^5 I. T9 z4 Q, o# `$ {[/td][td]2 g- P9 X' z% Y, ~5 B+ [
4568) T; c% Z  ^/ X( X$ r. B
[/td][/tr][tr][td]; f0 r7 [) K& X4 g6 }
1个
3 j7 s$ _% i8 E0 C0 |6 j[/td][td]- ^. Q; k# \5 ~" S; _
2340
7 l' t1 T  k) \) u
  l0 r* ?/ P8 x, {; K( z: O8 P看到这个SQLFiddle
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则