请问sql语句中的括号是什么意思

keety 2006-06-26 08:34:57

select * from [user] where username='tian';

括号的作用是什么,在什么状况下使用括号?
...全文
769 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
十一月猪 2006-06-26
  • 打赏
  • 举报
回复
对不符合规则的标识符必须进行分隔
==
标识符不能是 Transact-SQL 的保留字
user 是保留字
playwarcraft 2006-06-26
  • 打赏
  • 举报
回复
SQL里的關鍵字,在寫的時候,建議一般是加上擴號,
比如 select [name] from [user] where [ID]=1
這裡3個關鍵字都加了擴號,
不加的話,好像有時候會報錯...
playwarcraft 2006-06-26
  • 打赏
  • 举报
回复
樓主這句SQL里的意思是: user在SQL里是關鍵字,而正好這個table的名字為user
為了讓SQL認識該user為table name,所以加[],不知道解釋的對不?
paoluo 2006-06-26
  • 打赏
  • 举报
回复
分隔标识符

包含在双引号 (") 或者方括号 ([ ]) 内。符合标识符格式规则的标识符可以分隔,也可以不分隔。



在 Transact-SQL 语句中,对不符合所有标识符规则的标识符必须进行分隔。
phommy 2006-06-26
  • 打赏
  • 举报
回复
select [mytable.colx] = 1 from mytable
这样的语句有什么作用呢?!测试了一下,好像只是临时把mytable.colx的值全赋为1,表真正的值并没有变!
--------------------------------


其实是一个别名,等价的写法是
select 1 as [mytable.colx] from mytable
hellowork 2006-06-26
  • 打赏
  • 举报
回复
楼上补充的很好.
to :windzjp(赵依燃-lastidea.net)
select [mytable.colx] = 1 from mytable 这样的语句与具体应用有关,虽然看起来的确很徒劳,但是却能解决大问题.
mylkzy 2006-06-26
  • 打赏
  • 举报
回复
在语句中针对列名加括号有一种情况是,列名在创建是有空格.如
Create Table #Temp([公司 部门] NVarchar(200),kk int)
查询时如果只查第一个字段,则必然要用[],否则查询语句会报错
mylkzy 2006-06-26
  • 打赏
  • 举报
回复
select [mytable.colx] = 1 from mytable
这样的语句有什么作用呢?!测试了一下,好像只是临时把mytable.colx的值全赋为1,表真正的值并没有变!
--------------------------------
这是为了在某些情况下不改变原值只输出想对应的值,如表中数据为0和1两种,代表'男'和'女'.输出结果时当然想变成'男'和'女',而不是原来的0和1
  • 打赏
  • 举报
回复
hellowork() ( ) 信誉:100 2006-06-26 13:53:00 得分: 0


与SQLSERVER保留字同名的名称要加方括号,用于告诉SQLSERVER此名称非彼名称,否则SQLSERVER可能会误会.
还有一种要加方括号才行的情况,就是向表达式对象赋值时,必须使用方括号将表达式对象括起来.最常见的是带表名称或表别名的列对象.例如:
select [表名.列名] = 常量 from 表名
select [mytable.colx] = 1 from mytable
如果写成select mytable.colx = 1 from mytable 就会出错.

——————————————————————————————

select [mytable.colx] = 1 from mytable
这样的语句有什么作用呢?!测试了一下,好像只是临时把mytable.colx的值全赋为1,表真正的值并没有变!
sanshisong 2006-06-26
  • 打赏
  • 举报
回复
MARK
binhe521 2006-06-26
  • 打赏
  • 举报
回复
学习
hellowork 2006-06-26
  • 打赏
  • 举报
回复
与SQLSERVER保留字同名的名称要加方括号,用于告诉SQLSERVER此名称非彼名称,否则SQLSERVER可能会误会.
还有一种要加方括号才行的情况,就是向表达式对象赋值时,必须使用方括号将表达式对象括起来.最常见的是带表名称或表别名的列对象.例如:
select [表名.列名] = 常量 from 表名
select [mytable.colx] = 1 from mytable
如果写成select mytable.colx = 1 from mytable 就会出错.

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧