一个超级无敌简单的SQL问题
select datetime1,11111111111111111111 from cn_article
group by datetime1, content
怎么我这样查,都能查出数据呢?
明明没有1111111111111111111这个列的。
我知道是常量。但是不懂为什么,谢谢
------解决方案--------------------你写上的当然可以 1111111111111111111
------解决方案--------------------select datetime1,11111111111111111111 from cn_article
group by datetime1, content
11111111111111111111會被默認為一個沒有列名的新列
等同於
select datetime1,11111111111111111111 as abcd from cn_article
group by datetime1, content
------解决方案--------------------地板 楼上正解
------解决方案--------------------这个肯定是正确的, 因为SQL查询分析的时候, 可以有:变量\字面量\列名.
请看以下都是正确的.
select datetime1,11111111111111111111, '1111 ',[123] from cn_article
group by datetime1, content, [123]
特别说明,如果你有 11111 这个列, 那就要加 [11111] 才是正确的列名, 否则会变成字面量.
------解决方案--------------------3楼的错了, 11111111111 不是一个列名, 而是一个值为数字111111111111的无列名的列.
------解决方案--------------------select 出来的不仅仅可以是列名, 还可以是 变量\字面量.
你也可以直接 select 'abc ',123
或者
declare @ABC int --定义一个int变量
set @ABC = 1 + 1
select @ABC
------解决方案--------------------也就是说 select 并不仅仅是用来做表查询的, 可以查询很多其他的东西.
declare @ABC int --定义一个int变量
select @ABC = 10000
以上是赋值操作, 不会输出结果集.