MSSQL不支持别名查询还是我写错了?
我用这个查询,不报错,但也查不出值。
SELECT RID AS 编号
FROM Records
WHERE ('编号' LIKE '%7%')
一定要用这个才能查到值
SELECT RID AS 编号
FROM Records
WHERE (RID LIKE '%7%')
求解,需要用到别名!!!
[最优解释]
非要用别名的话可以用这种格式:
;with huang as (SELECT RID AS 编号
FROM Records)
SELECT 编号
FROM huang
WHERE ('编号' LIKE '%7%')
[其他解释]
因为sql 的顺序规定先where再select,你的编号在where才定义所以你不能这样写
[其他解释]
WHERE ('编号' LIKE '%7%')
WHERE (1=2)
有什么区别
[其他解释]
这个情况,是不支持别名查找
[其他解释]
--这个是判断7是否在‘编号’这个字符串中 注意 这里的编号是一个字符串 而不是别名
SELECT RID AS 编号
FROM Records
WHERE ('编号' LIKE '%7%')
--这个是筛选RID中含有7的
SELECT RID AS 编号
FROM Records
WHERE (RID LIKE '%7%')
建议楼主看一下SQL语句执行的顺序
SQL Select语句完整的执行顺序:
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
另外:一个查询语句各个部分的执行顺序:
--8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>
--(1) FROM <left_table>
--(3) <join_type> JOIN <right_table>
--(2) ON <join_condition>
--(4) WHERE <where_condition>
--(5) GROUP BY <group_by_list>
--(6) WITH {CUBE