❶ 求给力!!sql获取字段名!!高手请赐教!
CREATE TABLE TestABC (
[ID] INT,
[姓名] VARCHAR(10),
[性别] CHAR(2),
[年级] CHAR(4),
[语文] INT,
[数学] INT,
[英语] INT,
[物理] INT,
[化学] INT
);
INSERT INTO TestABC
VALUES(1, '张三', '男', '高一', 80, 90, 90, 95, 90);
-- 这个SQL,是除了 'ID', '姓名', '性别', '年级' 这4列以外,其他都检索。
DECLARE @sql VARCHAR(200);
BEGIN
SET @sql =
'SELECT ' + STUFF(
(SELECT
',' + col.name
FROM
sys.columns col
WHERE
col.object_id =
(SELECT object_id FROM sys.tables WHERE name = 'TestAbc')
AND col.name NOT IN ('ID', '姓名', '性别', '年级')
FOR XML PATH('')), 1 , 1, '') + ' FROM TestAbc';
EXECUTE (@sql);
END
-- 这个SQL,是排除前面4列,从第5列开始全部检索。
DECLARE @sql VARCHAR(200);
BEGIN
SET @sql =
'SELECT ' + STUFF(
(SELECT
',' + col.name
FROM
sys.columns col
WHERE
col.object_id =
(SELECT object_id FROM sys.tables WHERE name = 'TestAbc')
AND col.column_id > 4
FOR XML PATH('')), 1 , 1, '') + ' FROM TestAbc';
EXECUTE (@sql);
END
2个SQL 的结果是一样的:
语文 数学 英语 物理 化学
----------- ----------- ----------- ----------- -----------
80 90 90 95 90
(1 行受影响)
❷ 如何用sql语句截取某个字段中指定文字后面紧跟的数值。 例如:(前面
如何用sql语句截取某个字段中指定文字后面紧跟的数值。 例如:(前面
一、用到的函数:substring(' ', , )、charindex(' ',' ')
select SUBSTRING('[email protected]',1,charindex('@','[email protected]')-1)
1.substring(字符串表达式,开始位置,长度):
从一个指定字符串的指定位置截取制定长度的字符;
第一个参数表示被截取的字符串;
第二个参数表示要在第一个参数中开始截取的位置;
第三个参数表示要截取的长度。
例如:select substring('abc123',1,2) →返回ab
从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。
2.charindex(字符串表达式1,字符串表达式2[,整数表达式]):
在字符串2中查找字符串1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一个是null则返回null。
可以指定在字符串2中查找的起始位置。
例如:select charindex('ab','BCabTabD') → 返回3
select charindex('ab','BCabTabD',4) →返回6
二、用到的函数:left(' ', )、charindex(' ',' ')
select LEFT('[email protected]',charindex('@','[email protected]')-1)
1.left(字符串表达式,整数表达式):
从字符串表达式的最左边开始截取整数表达式个字符。
例如:select left('abcdef',3) →返回abc
❸ 用sql语句怎样获取里面的字段名称和类型啊
SELECT SysColumns.*
FROM SysObjects,
SysTypes,
SysColumns
WHERE (Sysobjects.Xtype ='u' OR Sysobjects.Xtype ='v')
AND Sysobjects.Id = Syscolumns.Id
AND SysTypes.XType = Syscolumns.XType
AND SysTypes.Name <> 'sysname' and SysObjects.Name='TableName'
❹ SQL语句截取字符串中最后的两个字怎么做急用。在线等。
substr(str,length(str)-1)
用right函数截取,right('abc',1)取最后一个字符
substring(字符串表达式,开始位置,长度):
从一个指定字符串的指定位置截取制定长度的字符;
第一个参数表示被截取的字符串;
第二个参数表示要在第一个参数中开始截取的位置;
第三个参数表示要截取的长度。
(4)sql取字段后缀扩展阅读;
SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、査询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。
❺ sql语句,能够截取指定字段后面的一个字符串吗
可以的,需要用到charindex函数和substring函数。
CHARINDEX函数常常用来在一段字符中搜索字符或者字符串。
substring
public String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。
(5)sql取字段后缀扩展阅读:
javascript示例
1 <scripttype="text/javascript">
2 varstr="Helloworld!"
3 document.write(str.substring(1,3));4 </script>上面返回字符串:"el";
str.substring(1,2) //返回e
str.substring(1) //返回"elloworld";
还有此函数中会出现奇怪的现象,当出现str.substring(5,0);
这又是怎么回事,不过返回的是"Hello",
str.substring(5,1) //返回"ello",截去了第一位,返回余下的.
可见substring(start,end),可以有不同的说明,即start可以是要返回的长度,end是所要去掉的多少个字符(从首位开始).
在JS中,substr(start,length),用得较方便.
CustomName包含客户的First Name和Last Name,它们之间被一个空格隔开。我们用CHARINDX函数确定两个名字中间空格的位置。通过这个方法,我们可以分析ContactName列的空格位置,这样可以只显示这个列的last name部分。
select top 5 substring(ContactName,charindex(' ',ContactName)+1,len(ContactName)) as [Last Name] from customers
CHARINDEX函数找到First Name和Last Name之间的空格,所以SUBSTRING函数可以分开ContactName列,这样就只有Last Name被选出。在CHARINDEX函数返回的整数上加1,这样Last Name不是从空格开始。
❻ sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗
sql语句可以截取指定字段后面的字符串,以sqlserver为例,需要用到charindex函数和substring函数。
如test表中有如下数据,要求截图str字段中逗号后边的内容。
可用如下语句:
select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;
结果截图:
charindex函数说明:
语法:
CHARINDEX ( expression1 , expression2 , [ start_location ] )
参数:
expression1
一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
substring函数说明:
语法:
substring( expression, start, length)
参数:expression 字符串、二进制字符串、文本、图像、列或包含列的表达式start 整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置length 整数或可以隐式转换为 int 的表达式,指定子字符串的长度
❼ SQL语句中,如何只取字段值的后几个字符
sqlserver有right函数
比如
right(colname,3)
❽ sql server 里的smalldatetime类型的字段,转成mysql里的varchar
SimpleDateFormat sf=new SimpleDateFormat("yyyy-M-dd");
sf.parse("1985 四月 11");
就可以了
❾ SQL查询语句,提取某个字符后面的字符
可以使用 charindex找出@所在的位置,然后进行字符串的处理。最后再汇总。
示例如下:
select right(a,len(a) - charindex('@',2) ) a,count(1) from A
group by right(a,len(a) - charindex('@',2) )