2017-01-10 2 views
1

私はVB6で作業しています。次に、私はこのようなテーブルメイオールを持っています:MIDでSQLにアクセスすると行がグループ化されない

Codigo  Titulo 
--------- ---------------- 
600  Cuenta 600 
60000000 Cuenta 60000000 
610  Cuenta 610 
6100  Cuenta 6100 
6101  Cuenta 6101 
61010000 Cuenta 61010000 
61010001 Cuenta 61010001 
61010002 Cuenta 61010002 
6102  Cuenta 6102 
61020000 Cuenta 61020000 
61030000 Cuenta 61030000 
61040000 Cuenta 61040000 

私はCodi​​goの長さで選択する必要があります。 iがな長さ= 2を選択したときに、私は私がな長さ= 5を選択したときに600と610
iは60000、61010、61020,61030及び61040.

を必要とする必要があるときセレクトな長さ= 3それから 60,61 レジスタ必要

私はこのSQLを使用します。

SELECT DISTINCTROW MID(CODIGO,1,4) AS CODIGOB,TITULO 
FROM MAYOR 
WHERE LEN(CODIGO)>=4 
ORDER BY CODIGO 

をしかし、私は= 6000,6100,6101,6101,6101,6101,6102,6102,6103,6104をcodigoしていると私は繰り返しを必要としません。

ご提案ください。

おかげ

答えて

0

あなたのスペックではなくDISTINCTを使用してみてくださいとORDERと一致

は私がCodigo

のな長さによって選択する必要がありますが、あなたのクエリがWHERE LEN(CODIGO)>=4

によってフィルタであると言いますBY句は次のようになります。

SELECT DISTINCT MID(CODIGO, 1, 4) AS CODIGOB, TITULO 
FROM MAYOR 
WHERE LEN(CODIGO) = 4 
ORDER BY MID(CODIGO, 1, 4) 
+0

Larsさん、ありがとうございます。問題はTITULOだと思います。 「CODIGO、1、4」のように「DISTINCT MID(CODIGO、1,4)」を使用する場合 FROM MAYOR LEN(CODIGO)= 4 ORDER BY MID(CODIGO、1,4) –

関連する問題