一个sql相减的问题 - MS-SQL Server / 疑难问题
一个字段是这样的 x 可以放多个值.. 传进来是字符串, ==> 12,13,14...20 如 select * from tableName where x in(12,13,14...20) 原始数据是这样..但是我想要得到 select * from tableName where x in(1,2,3...9)
也就是在原来的基础上减去11 ---?>>select * from tableName where x in(1,2,3...9)
没看明白 ,帮顶。
贴出表结构,数据
以及你要的结果
参考以下
SQL code:
create table #t(
id varchar(10))
declare @str varchar(300)
set @str='12,13,14,20'
declare @i int
declare @len int
set @i = 1
while @i < len(@str+',')
begin
insert #t select substring(@str+',',@i,charindex(',',@str+',',@i)-@i)
set @i = charindex(',',@str+',',@i)+1
end
select * from #t
/*
id
----------
12
13
14
20
(所影响的行数为 4 行)
*/
--drop table #t
create table a
(
id int identity(1,1) not null,
x int not null ----- 这个字段是保存1。..9 的数据 但是程序传过来的数据是 12,13,14...20 一个字符串
)
insert into a select 1 union all select 2 union all select 3 ,,,union all select 9
SQL code:
id varchar(10))
declare @str varchar(300)
set @str='12,13,14,20'
declare
相关问答:
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
现在有一个部门表dept(部门名称,部门号。。)有一个人员表emp(姓名,人员编号,职位,薪资,部门)
emp表中的内容是这样的:
a 1 工程师 3000 软件部
b 2 普通员工 2000 硬件部
c 3 工程师 4000 硬件部
d ......
将一个查询语句赋给一个变量,如下:
DECLARE @STR NVARCHAR(MAX)
SET @STR='SELECT * from SALE_PROD'
怎么样才能执行它呢?
请高手,仁兄,侠姐帮帮忙啊
多谢,可以啦,高手啊
直接执行就行了
exec ......