PDA

查看完整版本 : 一个sql语句问题。


winder
2001-03-06, 12:45
比如:
select * from tab where field1(连接符号?)field2="abc";
field1和field2均为varchar.

子夜游魂
2001-03-06, 14:18
你问的是什么意思?
你是说这个语句这样就能执行还是怎么?
在where子句的后面就是你的条件,如果你要求两个字段都必须是为一个值,那么用“and”,如果其中一个为一个值就用“or”
你问的时候把情况说清楚,以及要干什么也说清楚。

winder
2001-03-07, 15:31
哦,对不起!是这样的:这里是指两字段个相加(字符型的)的值等某一个值。

子夜游魂
2001-03-07, 16:37
我明白你的意思了。你是希望让两个字段先进行字符串的与运算,然后再和某个固定值做比较是吧。可以用下面这个sql语句实现。
SELECT *, [字段1] & [字段2] AS jj
FROM table
WHERE ((([字段1] & [字段2])="string"));

上面的jj表示一个表达式的名字,你可以自己选择
string就是你要比较的字符串的内容。

winder
2001-03-08, 15:02
错误信息:
database=# select * from tab where (((field1 & field2)="abcd"));
ERROR: Unable to identify an operator '&' for types 'varchar' and 'varchar'
You will have to retype this query using an explicit cast

子夜游魂
2001-03-11, 01:05
错误信息是说varchar类型不是使用&符来进行字符串运算的。因为我这个sql语句是在access中试验的,没有在mysql中测试,但是sql语句都是差不多的。你可以查一下mysql的手册,看看mysql具体的运算符是什么。

winder
2001-03-12, 14:42
按道理,SQL语法是相通的,但这个POSTGRES就是不按这个规矩,我找不到。

子夜游魂
2001-03-12, 23:30
据我所知,POSTGRES似乎是对sql支持最完整的数据库了。肯定有这方面的资料,你再查查。

winder
2001-03-13, 09:46
好的,谢谢你的帮助!