,,sql cast,convert,QUOTENAME,exec 函数学习记录

,,sql cast,convert,QUOTENAME,exec 函数学习记录

将一种数据类型的表达式显式转换为另一种数据类型。CAST和CONVERT提供了类似的功能。

使用语法转换:

强制转换(表达式为data_type)

使用转换:

CONVERT(数据类型[(长度)],表达式[,样式])

参数表达式

任何有效的Microsoft SQL Server表达式。有关更多信息,请参见表达式。

数据类型

目标系统提供的数据类型,包括bigint和sql_variant。不能使用用户定义的数据类型。有关可用数据类型的更多信息,请参见数据类型。

长度

nchar、nvarchar、char、varchar、binary或varbinary数据类型的可选参数。

风格

日期格式样式,将datetime或smalldatetime数据转换为字符数据(nchar、nvarchar、char、varchar、nchar或nvarchar数据类型);或字符串格式样式,以便将浮点、实数、货币或小额货币数据转换成字符数据(nchar、nvarchar、char、varchar、nchar或nvarchar数据类型)。

将一种数据类型的表达式显式转换为另一种数据类型。有关可用数据类型的更多信息,请参见数据类型。日期格式样式,将datetime或smalldatetime数据转换为字符数据(nchar、nvarchar、char、varchar、nchar或nvarchar数据类型);或字符串格式样式,以便将浮点、实数、货币或小额货币数据转换成字符数据(nchar、nvarchar、char、varchar、nchar或nvarchar数据类型)。转换成字符数据时输出。

隐式转换对用户是不可见的。SQL Server自动将数据从一种数据类型转换为另一种数据类型。例如,如果将一个smallint变量与一个int变量进行比较,则在比较之前,smallint变量会隐式转换为int变量。

显式转换使用CAST或CONVERT函数。castCONVERT函数将数值从一种数据类型(局部变量、列或其他表达式)转换为另一种数据类型。

例如,以下CAST函数将数值$157.27转换为字符串“$ 157.27”:CAST($ 157.27 as varchar(10))CAST函数基于SQL-92标准,优先于CONVERT。

从一个SQL Server对象的数据类型转换到另一个对象的数据类型时,不支持某些隐式和显式数据类型转换。例如,nchar值根本不能转换为图像值。Nchar只能显式转换为二进制,但不支持隐式转换为二进制。Nchar可以显式或隐式转换为nvarchar。

在处理sql_variant数据类型时,SQL Server支持将其他数据类型的对象隐式转换为sql_variant类型。但是,SQL Server不支持从sql_variant数据到其他数据类型的对象的隐式转换。

SELECT CONVERT(CHAR(10),CURRENT_TIMESTAMP,102)

(102表示使用ANSI日期模式,即yy.mm.dd类型)

但是,如果希望将此变量显式生成为datetime或smalldatetime变量,以便在特定的数据库列中兼容,则可以使用以下语句:

选择CAST(CONVERT(CHAR(10),CURRENT_TIMESTAMP,102)作为DATETIME

返回值将是yy.mm.dd 00:00:00(如时间戳为上午12:00;

Function QUOTENAME - Function:返回带分隔符的Unicode字符串,这可以使输入字符串成为有效的MicrosoftSQLServer2005分隔符标识符。-语法Quotename ('character _ string' [,' quote _ character'])

-例如:-例如,您有一个名为index的表-您有一个动态查询,表名为declare @ tbnamevarchar(256)set @ TB name=' index '-检查此表中的数据:print(' select * from ' @ TB name)exec(' select * from ')

-所以打印出来的数据是select*fromindex

——因为index是关键词,所以肯定是错的。只需添加括号:select*from[index]

-这将给出QUOTENAME,即:print(' select * from ' quote name(@ TB name))-result:select * from[index]exec(' select * from ' quote name(@ TB name))

3 EXEC AT,这是05中的新语法。在远程主机上执行动态SQL语句。

加n表示存储在数据库中时以Unicode格式存储。N'string '表示字符串是Unicode字符串。Unicode字符串在格式上类似于普通字符串,但它前面有一个N标识符(N代表SQL-92标准中的国家语言)。n前缀必须是大写字母。例如,“Michl”是一个字符串常量,N“michl”是一个Unicode常量。Unicode常量被解释为Unicode数据,并且不使用代码页进行计算。Unicode常量确实有排序规则,主要用于控制比较和区分大小写。为Unicode常量指定当前数据库的默认排序规则,除非使用COLLATE子句为它们指定了排序规则。Unicode数据中的每个字符存储在两个字节中,而字符数据中的每个字符存储在一个字节中。有关更多信息,请参见使用Unicode数据。

Unicode常量支持增强的排序规则。

EXEC命令有两个用法:执行一个存储过程,或者执行一个动态批次。批次是一个内容为SQL语句的字符串。

数据库名是一个标识符,表名也是一个标识符,在SQL SERVER中标识符分为两类:

标识符有两类:

符合标识符的格式规则。在Transact-SQL语句中使用常规标识符时,不需要将它们分开。SELECT * FROM TableXWHERE其中KeyCol=124

常规标识符

用双引号(')或方括号([])括起来。符合标识符格式规则的标识符可以被分离,也可以不被分离。SELECT *FROM [TableX] -分隔符是可选的。其中[KeyCol]=124 -分隔符是可选的。

在Transact-SQL语句中,不符合所有标识符规则的标识符必须分开。SELECT *FROM [My Table] -标识符包含一个空格并使用保留关键字。其中[order]=10 -标识符是保留关键字。

常规标识符和分隔标识符必须包含1到128个字符。对于本地临时表,标识符最多可以有116个字符。

分隔标识符

标识符的格式:1。标识符必须是Unicode 2.0标准中指定的字符,以及一些其他语言字符。比如汉字。2.标识符后面的字符可以是(条件1除外)" _ "、" @ "、" # "、$ "和数字。3.不允许将标识符作为Transact-SQL的保留字。4.标识符中不允许有空格和特殊字符。此外,一些以特殊符号开头的标识符在SQL SERVER中具有特定的含义。

像“@”这样的标识符表示这是一个局部变量或函数的参数;以#开头的标识符表示这是一个临时表或存储过程。

“# #”表示这是一个全局临时数据库对象。T

transact-SQL的全局变量以“@ @”开头。

该标识符最多可以包含128个字符。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序
  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序,使用SQL语句实现查询排序,顺序和倒序
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题,一篇文章带你入门SQL编程
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053,windows无法启动MySQL服务报错1067的解决方法
  • vb中adodb连接数据库,,VB语言使用ADO连接、操作SQLServer数据库教程
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句,SQL重复记录查询的几种方法
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图,SQL语句的各个关键字的解析过程详细总结
  • sql语句游标,sqlserver游标的使用
  • sql语句游标,sqlserver游标的使用,详解SQL游标的用法
  • 留言与评论(共有 条评论)
       
    验证码: