这样~一个字段 一行记录里面存一个数字select 字段 from table order by 字段 asc结果:
1
2
3
4
5
6
7现在我希望输出的结果第一行是字符串news结果像这样:
news
1
2
3
4
5
6`
`
`
`
`该怎么写

解决方案 »

  1.   

    select 字段 as news from table order by 字段 用别名?
      

  2.   

    不是 这样news 本身也当作值字段名
    news
    1
    2
    3
    4
    5
      

  3.   

    select 结果 from(
    select `news` as 结果,0 as k
    union all
    select 字段,1 as k from table 
    ) t
    order by k,字段
      

  4.   

    select 'news' from dual
    union all
    select 字段  from table order by 1
      

  5.   

    select f1 from (
    select 'news' as f1,0  as px from dual 
    union all 
    select 字段 ,1 from table ) a order by 1px
      

  6.   

    mysql> select * from Lie_li;
    +------+
    | col  |
    +------+
    |    1 |
    |    2 |
    |    3 |
    |    4 |
    |    5 |
    |    6 |
    |    7 |
    +------+
    7 rows in set (0.00 sec)mysql> select `结果` from(
        -> select 'news' as `结果`,0 as k
        -> union all
        -> select col,1 as k from Lie_li
        -> ) t
        -> order by k,`结果`;
    +------+
    | 结果 |
    +------+
    | news |
    | 1    |
    | 2    |
    | 3    |
    | 4    |
    | 5    |
    | 6    |
    | 7    |
    +------+
    8 rows in set (0.05 sec)mysql>
      

  7.   

    3楼运行没通过4楼 最后不加order by 1 可以, 不过我还是希望排序,因为不能确定日后数字的排列是顺序的。我把你的1改成实际字段报错说没有,改成'news' 排序是乱的另外说下
    我的那个字段是int的
      

  8.   

    #6楼 的就是 int 数据啊select `结果` from(
    select 'news' as `结果`,0 as k
    union all
    select col,1 as k from Lie_li
    ) t
    order by k,`结果`;mysql> desc Lie_li;
    +-------+---------+------+----
    | Field | Type    | Null | Key
    +-------+---------+------+----
    | col   | int(11) | YES  |
    +-------+---------+------+----
    1 row in set (0.02 sec)mysql>
      

  9.   

    没有办法,NEWS是字符型,自动转换为字符型
      

  10.   

    狼头  为什么你6楼的SQL  我这运行后全是jieguo.......
      

  11.   

    原因很简单,因为你粗心,语句没打正确,直接复制下面语句,什么都不要改直接运行。
    select `结果` from(
    select 'news' as `结果`,0 as k
    union all
    select col,1 as k from Lie_li
    ) t
    order by k,`结果`;
      

  12.   


    mysql> select * from test;
    +------+
    | f1   |
    +------+
    |    1 |
    |    2 |
    |    3 |
    |    4 |
    |    5 |
    +------+
    5 rows in set (0.00 sec)mysql> select f1 from(
        -> select 'news' as f1,0 as k
        -> union all
        -> select f1,1 as k from test) t
        -> order by k,f1;
    +------+
    | f1   |
    +------+
    | news |
    | 1    |
    | 2    |
    | 3    |
    | 4    |
    | 5    |
    +------+
    6 rows in set (0.00 sec)
      

  13.   

    SELECT 'NEWS' AS F1,1 AS PX
    UNION ALL
    SELECT *,2 FROM LSB2
    ORDER BY 2,CAST(F1 AS DECIMAL)
      

  14.   

    14楼我运行的结果 news打头 下面数字乱的
    狼头 你那 结果 是什么啊   我看你的不是用单引号圈起来的啊
      

  15.   

    99.99%估计的原因是你打错字了!注意引号,是反引号。不是你的单引号!select `结果` f
      

  16.   

    OR
    SELECT 'NEWS' AS F1,1 AS PX
    UNION ALL
    SELECT *,2 FROM LSB2
    ORDER BY RIGHT(CONCAT('000000000000','NEWS'),5)
    假设你最大只有5位
      

  17.   

    SELECT f1 FROM (
    SELECT 'NEWS' AS F1,1 AS PX 
    UNION ALL 
    SELECT *,2 FROM LSB2 ) a
    ORDER BY px,CAST(F1 AS DECIMAL)orSELECT f1 FROM (
    SELECT 'NEWS' AS F1,1 AS PX 
    UNION ALL 
    SELECT *,2 FROM LSB2 ) a
    ORDER BY px,RIGHT(CONCAT('000000000000',f1),5) 
    假设你最大只有5位假设你的数字>10的话,比如11-1000,那么加上RIGHT(CONCAT('000000000000',f1),5) 如何你的表中数据已经是有序的,
    SELECT f1 FROM (
    SELECT 'NEWS' AS F1
    UNION ALL 
    SELECT * FROM LSB2 ) aSELECT 'NEWS' AS F1
    UNION ALL 
    SELECT * FROM LSB2 ) a
      

  18.   

    如何你的表中数据已经是有序的, 
    SELECT f1 FROM ( 
    SELECT 'NEWS' AS F1 
    UNION ALL 
    SELECT * FROM LSB2 ) a
      

  19.   

    15 楼 你的可行  不过多了一列  必须存在吗?  其实也无所谓了 呵,我可以只取第一列的
    狼头.......复制你的  然后把该改的改改  运行结果 news打头  数字乱的唉~
      

  20.   

    改成如下。order by k,`结果`+0;mysql> select * from Lie_li;
    +------+
    | col  |
    +------+
    |    1 |
    |    2 |
    |    3 |
    |    4 |
    |    5 |
    |    6 |
    |    7 |
    |    8 |
    |    9 |
    |   10 |
    |   11 |
    |   12 |
    |   13 |
    |   14 |
    |   15 |
    |   16 |
    |   17 |
    |   18 |
    |   19 |
    |   20 |
    |   21 |
    |   22 |
    |   23 |
    |   24 |
    |   25 |
    |   26 |
    +------+
    26 rows in set (0.00 sec)mysql> select `结果` from(
        -> select 'news' as `结果`,0 as k
        -> union all
        -> select col,1 as k from Lie_li
        -> ) t
        -> order by k,`结果`+0;
    +------+
    | 结果 |
    +------+
    | news |
    | 1    |
    | 2    |
    | 3    |
    | 4    |
    | 5    |
    | 6    |
    | 7    |
    | 8    |
    | 9    |
    | 10   |
    | 11   |
    | 12   |
    | 13   |
    | 14   |
    | 15   |
    | 16   |
    | 17   |
    | 18   |
    | 19   |
    | 20   |
    | 21   |
    | 22   |
    | 23   |
    | 24   |
    | 25   |
    | 26   |
    +------+
    27 rows in set (0.00 sec)mysql>
      

  21.   

    呵呵,后面的去掉了,也可以直接加0,ORDER BY px,F1+0,MYSQL自动转换
      

  22.   

    简单一点儿,你可以直接select 'news' as `结果`
    union all
    select col from Lie_li
    order by `结果`+0
      

  23.   

    表的字符是UTF-8    平台是UTF8但  查询出来的结果  平台显示的是乱码
    我这要求查询出来的结果 在字符上是不是有什么变动了? 能在SQL上硬性声明更改吗?
      

  24.   

    建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  25.   

    mysql_query(set character set 'utf8');
    mysql_query("set names 'utf8'");
      

  26.   

    declare @表变量 table
    (
    编号 int identity(1,1), --编号
    结果 varchar(10) --你要存储的排序值

    insert into @表变量(结果)values('news')
    insert into @表变量(结果)select Convert(varchar(10),字段) from table order by 字段 asc 
    select 结果 from @表变量go试试这个吧,如果行请给分哦,楼主
      

  27.   

    问题已经解决了  目的是在原有int字段的开头再加一个字符串值但平台取值的时候,数值类型不统一,造成乱码。我用cast 把字段在查询的时候改成了字符串类型
    搞定~~~
    明天来结贴 呵呵